大数据-搜索-倒排索引
1. 概念
通过一个例子来介绍倒排索引
文档1:Tom lives in Guangzhou,I live in Guangzhou too
文档2:He once lived in Shanghai
正向索引
文章ID | 关键词 |
1 | guangzhou,i,live,tom |
2 | he,shanghai |
倒排索引
简单点说,倒排索引就是讲包含关键词的文章ID整理出来
关键词 | 文章ID |
guangzhou | 1 |
he | 2 |
i | 1 |
live | 1,2 |
shanghai | 2 |
tom | 1 |
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)建立倒排索引
有了关键词后,我们就可以建立倒排索引了。上面的对应关系是:“文章号”对“文章中所有关键词”。倒排索引把这个关系倒过来,变成: “关键词”对“拥有该关键词的所有文章号”。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!