`

Lucene 搜索方式

阅读更多

Lucene有多种搜索方式,可以根据需要选择不同的方式。

1、词条搜索(单个关键字查找)

     主要对象是TermQuery

     调用方式如下:
Term term=new Term(字段名,搜索关键字);
Query query
=new
 TermQuery(term);
Hits hits
=searcher.search(query);

 

2、组合搜索(允许多个关键字组合搜索)

     主要对象是BooleanQuery

     调用方式如下:
Term term1=new Term(字段名,搜索关键字);
TermQuery query1
=new
 TermQuery(term1);

Term term2
=new
 Term(字段名,搜索关键字);
TermQuery query2
=new
 TermQuery(term2);

BooleanQuery booleanquery
=new
 BooleanQuery();
booleanquery.add(query1,参数)
booleanquery.add(query2,参数)

Hits hits
=searcher.search(booleanquery);

此方法中的核心在BooleanQuery的add方法上,其第二个参数有三个可选值,对应着逻辑上的与或非关系

参数如下:

BooleanClause.Occur.MUST                必须包含,类似于逻辑运算的与

BooleanClause.Occur.MUST _NOT       必须不包含,类似于逻辑运算的非

BooleanClause.Occur.SHOULD           可以包含,类似于逻辑运算的或

这三者组合,妙用无穷。

 

3、范围搜索(允许搜索指定范围内的关键字结果)

     主要对象是RangeQuery

     调用方式如下: 

Term term1=new Term(字段名,起始值);

Term term2
=new
 Term(字段名,终止值);

RangeQuery rangequery
=new
 RangeQuery(term1,term2,参数);

Hits hits
=
searcher.search(rangequery);

此方法中的参数是Boolean类型的,表示是否包含边界 。

true 包含边界

false不包含边界


 

4、前缀搜索(搜索起始位置符合要求的结果)

     主要对象是PrefixQuery

     调用方式如下:

Term term=new Term(字段名,搜索关键字);
PrefixQuery prefixquery
=new
 PrefixQuery (term);
Hits hits
=searcher.search(prefixquery);

 

5、短语搜索(根据零碎的短语组合成新的词组进行搜索)

     主要对象是PhraseQuery

     调用方式如下:

Term term1=new Term(字段名,搜索关键字);
Term term2
=new
 Term(字段名,搜索关键字);

PhraseQuery phrasequery
=new
 PhraseQuery();
phrasequery.setSlop(参数);
phrasequery.add(term1);
phrasequery.add(term2);
Hits hits
=searcher.search(phrasequery);

其中setSlop的参数是设置两个关键字之间允许间隔的最大值。

分享到:
评论

相关推荐

    lucene站内搜索

    **Lucene站内搜索技术详解** Lucene是一个高性能、全文本搜索库,由Apache软件基金会开发,被广泛应用于各种...在实际项目中,开发者需要根据具体需求调整Analyzer、索引策略以及查询处理方式,以实现最佳的搜索体验。

    ssh+lucene搜索实例

    SSH(Secure Shell)是一种网络协议,用于在不安全的网络上提供安全的远程...以上就是关于"ssh+lucene搜索实例"的相关知识点,通过这种方式,可以有效地在分布式环境中实现全文搜索功能,提高数据检索的效率和便利性。

    基于Lucene的搜索引擎的研究与应用

    Lucene使用倒排索引,能够快速准确地对大量文本数据进行索引,并通过布尔逻辑等查询方式快速检索数据。 2. Lucene的关键特性 Lucene的API包含多个子包,用于实现不同的功能。例如,org.apache.lucene.analysis用于...

    Lucene 搜索方法(布尔搜索)

    Lucene是一个高性能、全文本搜索库,它提供了强大的信息检索功能,而布尔搜索是其中一种常用且灵活的搜索方式,允许用户通过逻辑运算符(如AND、OR、NOT等)来组合多个查询条件,以精确地控制搜索结果。 描述部分...

    基于Lucene的搜索策略研究

    ### 基于Lucene的搜索策略研究 随着信息技术的发展和社会信息化程度的加深,人们面临着海量数据的管理和检索挑战。如何高效地从大量的文档中找到所需的信息成为了亟待解决的问题。在这种背景下,Lucene作为一种开源...

    lucene实现全文搜索

    Lucene是一个由Java编写的高性能、可扩展的全文搜索引擎库。它提供了一种机制,使得开发者能够轻松地为自己的应用程序添加索引和搜索功能。作为Apache软件基金会的项目,Lucene具有开源和免费的特性,受到Apache软件...

    Lucene搜索引擎

    **Lucene搜索引擎** Lucene是Apache软件基金会的一个开源项目,它是一个高性能、全文本搜索库,为Java开发者提供了全文检索的API。Lucene的核心功能包括文档的索引、搜索以及结果的相关度排序。通过使用Lucene,...

    lucene开发WEB搜索引擎

    《使用LUCENE.NET构建WEB搜索引擎》 在信息化飞速发展的今天,搜索引擎已经成为人们获取网络信息的重要工具。本文将深入探讨如何使用LUCENE.NET框架来开发一款基于C#的WEB搜索引擎,帮助开发者掌握这一核心技术。 ...

    lucene+api搜索引擎引工具源码

    `HitCollector` 接口允许开发者自定义收集和处理搜索结果的方式。 8. **Highlighter**: 为了增强用户体验,源码可能还包含了高亮显示搜索关键词的功能。`Highlighter` 类可以突出显示文档中与查询匹配的部分。 9. ...

    Weblucene 站内搜索

    它提供了一种灵活且可定制的方式,帮助用户在自己的网站上构建功能强大的搜索功能,使得用户能够轻松地查找所需的信息。在本文中,我们将深入探讨Weblucene的主要特性、工作原理以及如何在你的网站上部署和使用Web...

    Lucene搜索引擎1

    在"Lucene搜索引擎1"这个主题中,我们将深入探讨Lucene的基本概念、核心组件以及如何使用它来构建一个简单的搜索引擎。 首先,Lucene的核心功能是索引和搜索。它能够将非结构化的文本数据(如网页、文档等)转化...

    lucene全局搜索所需jar包

    Lucene 是一个全文搜索引擎库,由 Apache 软件基金会开发。它提供了高效的文本分析、索引和搜索功能,广泛应用于各种 Java 应用程序,包括网站内容搜索、文档检索系统以及任何需要高效搜索功能的项目。这个压缩包...

    Lucene搜索引擎实例

    **Lucene搜索引擎实例** 在IT领域,搜索引擎是一个关键的组件,它使得用户能够高效地查找存储在大量数据中的特定信息。Lucene是Apache软件基金会的一个开源项目,它提供了一个强大的全文检索库,允许开发者构建自己...

    Lucene 搜索方法(前缀搜索)

    总结来说,Lucene的前缀搜索功能通过`PrefixQuery`类实现,结合适当的查询解析器和分析器,为用户提供了一种快速、灵活的方式,来查找与输入前缀相关的所有文档。这在诸如在线商店、知识库、搜索引擎等应用中具有很...

    利用lucene进行搜索

    利用lucene进行搜索,IndexSearcher是整个Lucene搜索查询相关信息的驱动引擎,在使IndexSearcher之前,需要构建IndexSearcher对象,Lucene提供了两种构建IndexSearcher对象的方式: 1、基于Directory对象构建; 2...

    经典的lucene实例代码及详细解析以及lucene结构流程介绍

    Lucene提供了多种搜索方式,包括 exact search、phrase search和Boolean search等。 在Lucene搜索中,我们需要指定查询语句、搜索范围和过滤条件。Lucene将根据查询语句生成查询树,然后使用查询树搜索索引,最后...

    一步一步跟我学习lucene(12)---lucene搜索之分组处理group查询

    在"一步一步跟我学习lucene(12)---lucene搜索之分组处理group查询"中,我们将重点关注如何利用Lucene实现这一高级搜索功能。 首先,Lucene是一个开源全文搜索引擎库,它为Java开发者提供了构建高效、可扩展的搜索...

    精通ajax+lucene做搜索引擎

    - **集成方式**:在使用Ajax构建的前端界面中集成Lucene后端服务,用户可以享受更快捷的搜索体验。例如,在用户输入关键词时,前端可以通过Ajax异步请求Lucene服务,快速返回搜索结果或建议,从而提供类似Google...

Global site tag (gtag.js) - Google Analytics