“ Lucene索引过程与相关的简介上一篇<Lucene简介与索引过程介绍>我们已经了解过,本篇我们来讲解Lucene查询过程。查询是用户把查询条件获取到目标文档的一个过程。通过用户输入的词Lucene负责匹配相关度最高的文档给予渲染输出。”
Lucene的索引建立完成后就可以让用户基于条件进行相关的文档检索,用户输入关键词从索引中获取所需的文档列表,或通过其他的条件对文档进行过滤与排序等。
例如咱们开篇中在百度中搜索的PHP是世界上最好的语言,百度基于我们的搜索词汇在全网中获取相关的文档列表给予返回。并且我们能够添加筛选条件,例如:‘时间筛选’,‘来源信息’,‘站点筛选’等对结果进行过滤筛选。
但是Lucene本身其实是不提供此类界面的展示的,如果需要做这种交互的实现需要用户自己编写相关的代码。
Lucene提供基本的搜索引擎工具包,它本身不是一个完全的全文检索引擎。Apache Lucene提供文档的搜索,本质上Apache Lucene的所有搜索都是在字段上执行的,文档是字段的集合。搜索时,提供的字段名称把搜索条件限制在特定字段。
Lucene搜索过程
Lucene搜索过程是Lucene最核心的功能之一,图片说明了搜索的过程。
- 创建QueryParser 简单来说QueryParser用于解析用户的输入内容,把用户的输入转换为Lucene能够理解的查询格式。
- 创建IndexSearcher IndexSearcher类充当索引过程中创建的搜索器索引的核心组件,设置查询Index索引指向位置。也就是Lucene文档位置。
- 搜索 开始进行搜索,通过QueryParser解析表达式中的表达式来创建Query对象。通过调用IndexSearcher.query进行检索
- 获取文档文件 通过indexSearcher.doc获取文档。
- 关闭IndexSearcher 查询完成关闭IndexSearcher。
以上为Apache Lucene基本的搜索过程。Lucene搜索API接受搜索查询并且按照与具有最高分的相似度的文档相关度排序。文档排序的问题我们未来继续...