知识卡片
合取查询:先处理最短的倒排列表,让候选集只减不增
内容
处理多词AND查询时,应先取频率最低(倒排列表最短)的词作初始候选集,再按频率从低到高依次用其余词过滤,而非按查询里出现的顺序处理。这样候选集从一开始就最小,之后只会越筛越小,内存峰值被最小化;一旦候选集变空可提前结束(实际查询中”无匹配”比例出乎意料地高)。这把”归并两个大列表”变成了”用一个小候选集去查一个大列表”,是多个过滤条件应让选择性最强的最先起作用这一通用原则的具体体现。
参考来源
- 位置:第4章《查询》「合取查询」小节(源文件:_chapter-text/ch04.txt)
- 结论依据:原文明确说明应按词频升序处理合取查询术语,用最短倒排列表作初始候选集以降低内存峰值,且候选集为空时可提前结束,直接支持卡片论点。
- 原始内容:"接下来按照词频大小升序排列,余下的处理也按照这个顺序执行……有两个理由决定了选择最低频的术语作为初始候选集,首先能在查询处理中降低临时内存的需求量……如果候选集成为空集,语序的术语也不需要再处理了。"