Lucene 采用的是一种称为反向索引(inverted index)的机制。
反向索引就是说我们维护了一个词 / 短语表,对于这个表中的每个词 / 短语,都有一个链表描述了有哪些文档包含了这个词 / 短语。这样在用户输入查询条件的时候,就能非常快的得到搜索结果。搜索引擎首先会对搜索的关键词进行解析,然后再在建立好的索引上面进行查找,最终返回和用户输入的关键词相关联的文档。
关键词就是Term(比如英文里面的一个单词,中文的词语),字典就是Term的集合。下图是Lucene 的索引的底层存储结构,左边是字典,右边保存的是包含左边字符串的文档编码链表,称之为倒排表
上面这种就叫做反向索引,是相对正向索引而言的:
- 正向索引:从文档中查找关键词,关系型数据库使用的是正向索引
- 反向索引:从关键词查找文档,搜索引擎lucene使用的是反向索引
比如上图中包含"lucene"这个关键词的文档编码有3,7,15,30,35,67,其他同理
本文地址:http://lianchengexpo.xrbh.cn/quote/11560.html 迅博思语资讯 http://lianchengexpo.xrbh.cn/ , 查看更多