http://blog.csdn.net/hguisu/article/details/7962350
http://blog.csdn.net/huangxiangec/article/details/8610472
倒排索引主要由两个部分组成:“单词 词典”和“倒排文件”。
单词词典内每条索引项记载单词本身的一些信息以及指向“倒排列表”的指针
倒排列表记载了出现过某个单词的所有文档的文档列表及单词在该文档中出现的位置信息,每条记录称为一个倒排项(Posting)。
根据倒排列表,即可获知哪些文档包含某个单词。所有单词的倒排列表往往顺序地存储在磁盘的某个文件里,这个文件即被称之为倒排文件,倒排文件是存储倒排索引的物理文件。
倒排索引:有了关键词后,我们就可以建立倒排索引了。
上面经过解析后的对应关系是:“文章号”对“文章中所有关键词”。
这种对应比较符合我们正常的思维习惯,反过来对应的话,就要颠倒思维,所以这种算法叫做倒排! 倒排索引把这个关系倒过来,变成:“关键词”对“拥有该关键词的所有文章号”。
倒排索引:有了关键词后,我们就可以建立倒排索引了。
上面经过解析后的对应关系是:“文章号”对“文章中所有关键词”。
这种对应比较符合我们正常的思维习惯,反过来对应的话,就要颠倒思维,所以这种算法叫做倒排! 倒排索引把这个关系倒过来,变成:“关键词”对“拥有该关键词的所有文章号”。
(数据结构:
如果你对计算机算法和数据结构稍有研究,你就很容易发现,我们上面生成的倒排索引关键字是按字母字符顺序排列的(lucene没有使用B树结构),因此lucene可以用二元搜索算法即二分查找快速定位关键词。 Lucene的创新之处:
大部分的搜索(数据库)引擎都是用B树结构来维护索引,索引的更新会导致大量的IO操作,Lucene在实现中,对此稍微有所改进:不是维护一个索引文件,而是在
扩展索引的时候不断创建新的索引文件,然后定期的把这些新的小索引文件合并到原先的大索引中(针对不同的更新策略,批次的大小可以调整),这样在不影响检索的效率的前提下,提高了索引的效率。
)
阅读(1625) | 评论(0) | 转发(0) |