第一章——布尔检索
1.3 布尔查询的处理
-
求两个倒排记录表交集的一个简单有效的合并算法。
笔记:两个词的倒排记录表按照全局统一指标排列(例:从小到大排列),两边列表的指针进行同步线性查找和对比,若两边指针所对应的文档ID不同,则对应较小ID的指针向后移动,这种合并算法的时间复杂度(time complexity)为O(N),与线性扫描的时间复杂度相比并没有很大的提升。 -
查询优化(query optimization):指的是如何通过组织查询的处理过程来使处理量最小。
-
在与逻辑中,结果往往不会超过最小的数,因此我们可以先合并最短的倒排记录表,那么中间所有计算结果大小都不可能超过最短的倒排记录表,这样可以减少查询处理的工作量。
-
文档频率在访问之前可以用于决定倒排记录表的访问次序。
-
将每个返回的倒排记录表和当前内存中的中间结果进行合并,这样做的效率更高。(如下图:在输入多个词项的与查询时对它们的倒排记录表进行合并的算法。)