首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

如果检索的过程过于复杂,那么搜索引擎也就失去其优势了。本小节主要介绍使用Lucene进行检索的流程。

11.1.1  初始化Lucene的检索工具IndexSearcher

IndexSearcherLucene中最基本的检索工具,所有的检索都会用到IndexSearcher检索工具,但是在使用IndexSearcher之前,还要做一些准备工作,即对检索工具IndexSearcher进行初始化。

初始化IndexSearcher,需要设置索引存放的路径,这样才能让查询器定位索引,用于后面进行搜索。如以下为一个实例化IndexSearcher的过程:

Searcher searcher = new IndexSearcher(indexDir);

返回的结果是IndexSearcher类的一个实例,indexDir表示索引文件的存放路径。当然,初始化IndexSeacher不只这一种方式,详细内容将在后面的小节中说明。

11.1.2  构建Query

Query的中文意义就是“查询”。在Lucene中,它是一个很重要的概念,就是指对于需要查询的字段采用什么样的方式进行查询,如模糊查询、语义查询、短语查询、范围查询、组合查询等。正是因为Query的存在,Lucene才有了非常丰富的查询语言。

在使用Query之前,需要首先生成一个Query对象。Lucene既允许直接生成一个Query类型的对象,也允许使用QueryParser类的parse()方法来返回一个Query类型的对象。这两种方法在功能上是完全一样的,只是后者在使用时更方便一些,而前者则更为灵活。

11.1.3  搜索并处理返回结果

在构建完Query对象后,就可以使用前面已经初始化好的IndexSearcher工具来进行检索了。IndexSearcher提供了良好的检索接口,用户只需简单地将Query对象传入,就可以得到一个返回结果。当然,这个过程看似简单,其中也有许多值得思考的问题,如检索结果的排序、过滤等。具体的内容将在后面的章节进行介绍。

 

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论