什么是倒排索引?
维基百科:倒排索引(英语:inverted index),也常被称为反向索引、置入档案或反向档案,是一种索引方法,被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射。它是文档检索系统中最常用的数据结构。
常规建索引的方式
文档-->关键词的映射过程(正向索引) 缺点:费时,检索一个关键词,得把这个文档全部遍历一遍。
倒排方向建立索引
关键词-->文档的映射 把正想索引的结果重新构成倒排索引(反向索引)
如何建立倒排索引,具体过程是什么样的?举例:
有如下几篇文档
2010年乔布斯非常鄙视雷布斯发布的大米手机,乔布斯自己却发布了苹果手机
雷布斯不管怎么样还是很崇拜乔布斯
罗永浩发布锤子手机并且鄙视了下雷布斯
黄章大骂雷布斯是个锤子,非常欣赏乔布斯,同时鄙视锤子所发布的手机
苹果现在八元一斤,非常贵,黄章表示买不起
首先全文搜索得先把这些文档进行分词,把这些文档里面一个个的单词,根据不同的语言,把它晒分成单个微小的词项,比如说中文里面,乔布斯就是一个词;分完词之后,会把这些词进行筛选和过滤,得到一个单词集合如下图:
文档和单词集合每一个单词都有一个ID。对文档也做一个结合,给每个文档一个ID,然后我们根据单词集合和文档结合进行组合运算,就能得到一个矩阵。如下图:
倒排索引,把单词和文档进行组合运算,然后把每个关键词它在文档里的位置还有信息,通过这样一条条的数据把它记录下来,当然也可以添加更详细的信息。TF代表频率。只要你这张表越详细,索引建的就越完善,索引越完善,当用户在做文档查询的时候,得到的反馈就更加的精确和详细