Lucene初级知识
Lucene
1、学习Lucene需要知道的概念:
全文探索:先建立索引,再对索引进行搜索的过程就叫全文检索(Full-textSearch)。
1.1基本知识概要:
索引创建:将现实世界中所有的结构化和非结构化数据提取信息,创建索引的过程。
搜索索引:就是得到用户的查询请求,搜索创建的索引,然后返回结果的过程。
反向所引:从字符串到文件的映射是文件到字符串映射的反向过程,于是保存这种信息的索引称为反向索引。
存在优势:全文搜索相对于顺序扫描的优势之一:一次索引,多次使用。
去掉停词:就是对探索无益的单词,他会消耗不必要的查询时间,去掉如"this","a","of"等。
term还原:就是将词的变化形式还原为词根,如去掉s等的操作,通过语言处理组件实现。
合并索引:对相同的term生成的索引进行合并,保持对同一个资源只建立一个索引。
探索语法:"AND","OR",'NOT',指的是包含什么或什么不含有什么。
探索相关性:就是匹配程度,termweight(权衡相关比重)。
空间模型算法:判断词(Term)之间的关系从而得到文档相关性的过程应用一种叫做向量空间模型的算法(VectorSpaceModel)。
1.2索引过程:
1)有一系列被索引文件
2)被索引文件经过语法分析和语言处理形成一系列词(Term)。
3)经过索引创建形成词典和反向索引表。
4)通过索引存储将索引写入硬盘。
1.3搜索过程:
a)用户输入查询语句。
b)对查询语句经过语法分析和语言分析得到一系列词(Term)。
c)通过语法分析得到一个查询树。
d)通过索引存储将索引读入到内存。
e)利用查询树搜索索引,从而得到每个词(Term)的文档链表,对文档链表进行交,差,并得到结果文档。
f)将搜索到的结果文档对查询的相关性进行排序。
g)返回查询结果给用户。
2、Lucene轮廓:
Lucene是全文搜索的一种具体应用。
基本操作对象单元:
Document:被索引的文档用Document对象表示。
IndexWriter:通过函数addDocument将文档添加到索引中,实现创建索引的过程。
Index:Lucene的索引是应用反向索引。
Query:当用户有请求时,Query代表用户的查询语句。
IndexSearcher:通过函数search搜索LuceneIndex,IndexSearcher计算termweight和score并且将结果返回给用户。
TopDocsCollector:返回给用户的文档集合用TopDocsCollector表示。