lucene原理介绍

全文检索:是指以文本作为检索对象,找出含有指定词汇的文本。

 

全文检索功能的开发,要做的有两个方面:

1、索引库管理(维护索引库中的数据)

2、索引库中进行搜索。

而Lucene就是操作索引库的工具。

 

使用lucene的API操作索引库

对索引库的操作可以分为两种:管理与查询。

管理索引库使用IndexWriter,从索引库中查询使用IndexSearcher。

Lucene的数据结构为Document与Field。

 

Document代表一条数据,Field代表数据中的一个属性。一个Document中有多个Field,Field的值为String型,因为Lucene只处理文本。

我们只需要把在我们的程序中的对象转成Document,就可以交给Lucene管理了,搜索的结果中的数据列表也是Document的集合。

 

倒排序索引的原理就如同查字典。

要先查目录,得到数据对应的页码,在直接翻到指定的页码。不是在文章中找词,而是从目录中找词所在的文章。

这需要在索引库中生成一个词汇表(目录),在词汇表中的每一条记录都是类似于"词所在文档的编号列表"的结构,记录了每一个出现过的单词,和单词出现的地方(哪些文档)。

查询时先查词汇表,得到文档的编号,再直接取出相应的文档。

你可能感兴趣的:(lucene原理介绍)