搜索引擎4大组件:

  • 索引管理器(Index Manager)
  • 索引检索器(Index Searcher)
  • 索引构建器(Indexer)
  • 文档管理器(Document Manager)

全文搜索方式:

  • 全扫描进行全文搜索(grep型搜索),KMP算法和BM算法
  • 索引进行全文搜索

倒排索引(Inverted Index)基本原理

0_1532273332303_WechatIMG321.jpeg

当同时查找多个单词的文档时,先从词典中找出各个单词,然后分别获取这些单词的倒排列表,计算出这些列表的交集即可得到同事包含所有单词的文档列表。


分词

可以将一句短语拆分成多个单词,用来构建倒排索引。

常用的中文分词算法:词素解析分割法,N-gram(q-gram)分割法。

各个单词在文档中出现的次数叫做TF(Term Frequency)词频,常用于计算检索结果的排名等。


检索模型(如何进行检索)

将布尔检索的检索模型叫做布尔模型,布尔模型使用多个单词通过逻辑运算符连接而成进行查询检索(AND,OR,NOT)。


关联度的计算方法

  • 余弦相似度(CosineSimilarity)
  • OkapiBM25

构建倒排索引的过程

提取词元,从作为检索对象的文档中提取出词元及其出现的位置,对于每个词元将其所在文档的引用信息(文档编号)和出现在文档中的位置保存起来。
利用N-gram或者词素解析的方法将句子分割成词元的序列。


倒排索引的学习资料

Inverted_Index.pdf