`

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

    基于Lucene的桌面搜索软件

    出售一个桌面/硬盘搜索软件,基于Lucene,采用java语言开发,包含开题报告、毕业论文等(我的毕业设计课题,答辩成绩为良) 联系方式: E-mail:e_dao@qq.com

    java Lucene初级教程

    2 lucene的工作方式  lucene提供的服务实际包含两部分:一入一出。所谓入是写入,即将你提供的源(本质是字符串)写入索引或者将其从索引中删除;所谓出是读出,即向用户提供全文搜索服务,让用户可以通过关键词...

    Lucene 3.6 学习笔记

    (2) 各种匹配方式 13 3.4 分页搜索 14 (1) 普通分页 14 (2) searchAfter分页 15 第四章 分词基础 17 4.1 分词效果 17 (1) 准备分词输出类 17 (2) 创建分词器 18 (3) 英文分词效果 18 (4) 中文分词效果 19 4.2 分词...

    lucene查询结果集分页代码

    在lucene搜索分页过程中,可以有两种方式 一种是将搜索结果集直接放到session中,但是假如结果集非常大,同时又存在大并发访问的时候,很可能造成服务器的内存不足,而使服务器宕机 还有一种是每次都重新进行搜索,这样...

    学术学位论文.搜索引擎专辑 10篇之三:基于Lucene的Web站内信息搜索系统.rar

    基于Lucene的Web站内信息搜索系统.rar 基于多Agent的信息搜索引擎技术研究与应用.rar 基于多Agent的智能搜索引擎系统研究.rar 搜索引擎的研究与实现.rar 搜索引擎中的数据存储问题研究.rar 网络树形搜索引擎的设计...

    lucene检索实例代码,自己总结的非常详细

    2:各种搜索方式方法 3:删除索引 4:检查索引文件 5:恢复删除的索引 6:强制删除 7:更新索引 8:合并索引 9:高亮回显 供大家参考学习 public static void main(String[] args) { LuceneUtil luceneUtil = new ...

    基于Lucene的全文搜索

    通过简单的swing来实现lucene的中文分词、以及全文索引的功能 里面有完整的开发步骤和详细的注释,可直接运行!如果需要通过Web的方式调用可以直接调用接口的方法!

    Java毕业设计-[搜索链接]java(结合lucene)版的公交搜索系统_javaso.rar

    **Java公交搜索系统(基于Lucene)** 本资源是一个基于Java语言开发的公交搜索系统,结合了强大的全文搜索引擎Lucene,为用户提供高效、准确的公交线路查询服务。系统采用模块化设计,易于二次开发和定制,可广泛...

    lucene全文检索设计与实现

    “全文检索”功能已经成为客户开发应用平台的重要部分,中文搜索引擎已有多年的发展历史。全文检索产品,开发出独立于原有数据库的检索平台,利用该平台进行文件的采集和搜索...此方式很好地解决了高端用户的搜索需求。

    基于Lucene的实时全文检索系统(含论文)

    本文主要是研究了全文检索技术的基本原理以及Lucene的架构和工作原理,并介绍了基于Lucene的实时全文检索引擎的设计实现过程。并提供了一个基于Web的简单实现。最后通过实验的方式,对实现的实时全文检索引擎的性能...

    Lucene in Action(简体中文版+英文原版)

    前言 ...为了以系统无关的方式用Java技术重新实现我的个人照片档案系统及搜索引擎,我使用了Lucene。Lucene的简单易用远远超过了我的期望—我所期望的其它开源库或工具在概念上简单,但是却难以使用。

    ASP.NET基于Ajax+Lucene构建搜索引擎的设计和实现(源代码+毕设).rar

    通过搜索引擎从互联网上获取有用信息已经成为人们生活的重要组成部分,Lucene是构建搜索引擎的其中一种方式。搜索引擎系统是在.Net平台上用C#开发的,数据库是MSSQL Server 2000。主要完成的功能有:用爬虫抓取网页...

    自己刚开发完成完美运行Lucene.net+SQL server(附数据源)童叟无欺

    3.使用了较新的Lucene.net,目前是3.0版本 4.使用了最后一版盘古分词(2016年版本) 5.使用Winform+webBrowser实现(webBrowser负责显示结果) 使用方式: 1.新建数据库,然后在新建的数据库中执行附件根目录的sql...

    基于JAVA的搜索引擎 lucene-2.2.0

    它主要实现了根据指定的建立索引的方式(重写、追加写入),通过create标志位来判断,从而指定一种在操作索引文件的过程中删除索引文件的策略。 必须深入地理解IndexWriter索引器初始化的过程,以及在构造一个...

    Lucene.Net

    Lucene.net 起初是一个开源项目然后转向商业化,也在Lucene.net 2.0已经发布,不过是要money D ,Lucene.net的命运有点类似于FreeTextBox ,它在 1.6.5 版本之后发布的 2.0 开始了商业路线,2.0 提供了 DLL 方式的...

    lucene5.3索引查看工具

    luke5.3 支持打开lucene5.3及以下的版本,运行方式。java -jar lucene5.3索引查看工具.jar

    lumongo:使用Lucene和MongoDB进行分布式实时搜索

    使用Lucene进行分布式实时搜索 LuMongo是基于Lucene的实时分布式搜索和存储系统。 LuMongo从头开始设计,可以在服务器之间垂直和水平扩展。 LuMongo将Lucene索引直接存储到MongoDB中。 文档可以本地存储在MongoDB中...

    AzureDirectory:用于Azure Blob存储的Lucene目录提供程序

    Lucene.Net是一种强大的开源搜索技术,它具有一个抽象的目录(称为目录),用于定义索引的存储方式。 AzureDirectory是Windows Azure Blob存储的该接口的实现。 关于 该项目允许您创建Lucene索引并在Azure中使用它们...

    lucene-trey:基于lucene的小型中文搜索引擎

    基于lucene的小型中文搜索引擎 最近项目中需要自行进行搜索任务,比较紧急,只能采用字符匹配完成。看到全文搜索引擎的相关资料,尝试用之。 使用方式: 引入资源:通过文本文件或者数据库链接引入资源文件(需要...

Global site tag (gtag.js) - Google Analytics