倒排索引的一些术语
-
文档(Document):一般搜索引擎的处理对象是互联网网页,比如Word,PDF,html,XML等不同格式的文件都可以称之为文档。
-
文档集合(Document Collection):由若干文档构成的集合称之为文档集合。例子:很多电子邮件都是文档集合。
-
文档编号(Document ID):在搜索引擎内部,会将文档集合内每个文档赋予一个唯一的内部编号,以此编号来作为这个文档的唯一标识
-
单词编号(Word ID):与文档编号类似,搜索引擎内部以唯一的编号来表征某个单词
-
单词词典(Lexicon):搜索引擎的通常索引单位是单词,单词词典是由文档集合中出现过的所有单词构成的字符串集合
-
倒排列表(PostingList):倒排列表记录某个单词的所有文档的文档列表、单词在该文档中出现的位置信息
-
倒排文件(Inverted File):所有单词的倒排列表往往顺序地存储在磁盘的某个文件里,这个文件即被称之为倒排文件
倒排索引原理
1、每个分词的单词对应所在的文档列表(倒排列表)
2、单词ID”一栏记录了每个单词的单词编号,第二栏是对应的单词,第三栏即每个单词对应的倒排列表。比如单词“谷歌”,其单词编号为1,倒排列表为{1,2,3,4,5},说明文档集合中每个文档都包含了这个单词。
3、在单词对应的倒排列表中不仅记录了文档编号,还记载了单词频率信息(TF),即这个单词在某个文档中的出现次数,之所以要记录这个信息,是因为词频信息在搜索结果排序时,计算查询和文档相似度是很重要的一个计算因子,方便后续排序时进行分值计算。
下图中,词“创始人”的单词编号为7,对应的倒排列表内容为:(3:1),其中的3代表文档编号为3的文档包含这个单词,数字1代表词频信息,即这个单词在3号文档中只出现过1次,其它单词对应的倒排列表所代表含义与此相同。
4、 实用的倒排索引还可以记载更多的信息,索引系统除了记录文档编号和单词频率信息外,额外记载了两类信息,即每个单词对应的“文档频率信息”以及在倒排列表中记录单词在某个文档出现的位置信息
以单词“拉斯”为例,其单词编号为8,文档频率为2,代表整个文档集合中有两个文档包含这个单词,对应的倒排列表为:{(3;1;<4>),(5;1;<4>)},其含义为在文档3和文档5出现过这个单词,单词频率都为1,单词“拉斯”在两个文档中的出现位置都是4,即文档中第四个单词是“拉斯”
Solr搜索过程
- 1、收集待索引的原文档
从数据库、web等获取原文档。
- 2、将原文档交给分词组件(Tokenizer)
此过程叫做Tokenize,得到的结果称为Token。
会做如下几件事:
1.将文档分成一个个独立的单词
2.去除标点
3.去除停词(stopword)
- 3、将得到的Token交给语言处理组件(LinguisticProcessor)
此过程处理的结果是Term
会做如下几件事:
1.转为小写
2.将单词缩减为词根,如cars-->car
3.将单词转变为词根,如drove-->drive
- 4、将得到的Term交给索引组件(Indexer)
会做如下几件事:
1.将得到的Term创建字典
2.对字典按字母排序
3.合并相同的Term为倒排索引表
参数:https://blog.csdn.net/hu948162999/article/details/42463043