1.布尔检索:

  倒排文档,ad Hoc检索(任务一直在变,数据集不变)

2.词项词典及倒排记录表

  词项集合的确定:词条化、去停用词、词项归一化(重音及变音符号问题、大小写转换问题、语言问题)、词干还原和词性归并

  基于跳表的倒排记录表快速合并算法

短语查询:二元词索引、位置信息检索、混合索引机制(二元+位置)

3.词典及容错式检索

  词典搜索的数据结构:哈希表(难以处理查询词项存在轻微变化的情况,难以处理前缀式查询),

            ---引出搜索树(二叉树、B树)

  通配符查询:轮排索引(hello:hello$,ello$h,llo$he...)、K-gram索引(由k个字符组成的序列castle:cas、ast、stl)

  拼写校正:原则---拼写错误查询和两个正确拼写查询邻近度相等时选择更常见的一个

       方法---词项独立和上下文敏感

           词项独立---编辑距离方法:Levenshtein distance算法;k-gram重合度

           上下文敏感---保留问文档集合或查询日志中高频组合,作为校正原则

form Heathrow 和 flew from Heathrow)

  基于发音的校正技术

4.索引构建

  基于块的排序索引方法:BSBI(基于块的排序索引算法)

外部排序算法---将词项构成词项ID-文档ID对,文档解析成词项

            ID-文档ID对

  内存式单遍扫描索引构建方法:SPIMI(内存式单遍扫描索引算法)

    处理每个词项-文档ID对,如果词项第一次出现,那么将之加入词典(哈希表实现),同时建立一个新的倒排记录表;如果词项不是

           第一次出现则直接返回其倒排记录表;

    BSBI和SPIMI的区别:后者直接在倒排记录表中增加一项。前者是一开始就整理出所有的词项ID-文档ID并对他们进行排序

  分布式索引构建方法:MapReduce(一种通用的分布式计算架构,面向大规模计算机集群的设计)

    map阶段将输入的数据片映射成建-值对;reduce阶段将同一键(词项ID)的所有值(文档ID)集中存储。

  动态索引构建方法:

    要求能够及时检索到新文档的环境,解决方法是同时保持两个索引,一个大索引,一个辅助索引,后者保存在内存中。检索时可以同

           时遍历两个索引并将结果合并。