大数据-搜索-倒排索引

1. 概念

通过一个例子来介绍倒排索引

文档1:Tom lives in Guangzhou,I live in Guangzhou too

文档2:He once lived in Shanghai

正向索引

文章ID关键词
1guangzhou,i,live,tom 
2he,shanghai

倒排索引

简单点说,倒排索引就是讲包含关键词的文章ID整理出来

关键词文章ID
guangzhou1   
he2
i1
live1,2
shanghai2
tom1

2. Lucene中的倒排索引原理

1)分词

由于Lucene是基于关键词索引和搜索的,所以我们首先要取得两篇文章的关键词

  • 分词,英文单词用空格隔开,比较好处理。中文词语通常连在一起,需要特殊方法处理。
  • 去掉无意义的词,例如英文中的once,in,too等,中文中的“的”等。
  • 统一大小写,用户在查询“He”的时候,通常也希望得到“he”的查询结果。
  • 词型归并,live,lives,lived三个词语表示同一个意思,可以用live表示。
  • 标点符号,标点符号通常不表示某种概念,可以去掉。

在Lucene中,以上工作由Analyzer完成,经过上面的处理后:

doc1:[tom] [live] [guangzhou] [i] [live] [guangzhou] 

doc2:[he] [live] [shanghai]

2)建立倒排索引

    有了关键词后,我们就可以建立倒排索引了。上面的对应关系是:“文章号”对“文章中所有关键词”。倒排索引把这个关系倒过来,变成: “关键词”对“拥有该关键词的所有文章号”。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部