Pro*_*mer 3 information-retrieval search-engine
这是一个信息检索问题.当我们一次进行文档评分时,为什么DAAT允许我们跳过部分较长列表.我正在阅读一篇名为"使用图形处理器进行高性能IR查询处理"的研究论文,其中他们只是提到上述属性而没有任何解释.一个例子将不胜感激.谢谢
考虑"AND"查询,例如:
"Gaga AND CD"
Run Code Online (Sandbox Code Playgroud)
你可以想象这Gaga比CD要罕见得多.换句话说,发布列表(或你想要的反向列表)Gaga要远远短于CD.
让我们假设两个单词的两个小发布列表(我只显示doc_ids,这里是感兴趣的对象):
Gaga -> [2, 10, 1023, 2030]
CD -> [1, 2, 6, 8, 15, 32, 43, 52, 92, 115, 326, 401, 560, 564, ... , 1924, 2030, ...]
Run Code Online (Sandbox Code Playgroud)
在一次性文档检索中,我们通过并行查找与查询匹配的文档(在AND查询中,只发布在两个发布列表中的每个文档)来迭代发布列表.
在这种类型的检索中,我们可以通过了解最罕见的术语(Gaga)来跳过文档.这样我们就可以将其发布列表用作"枢轴".要查找的第一个doc_id是2,而不是10.需要注意的是,我们可以跳过之间的所有doc_ids 2并10在CD置入列表,因为我们知道它不会匹配任何东西.同样,处理的下一个doc_id是1023.在处理时,1023我们可以跳过至少10个文档(从15之后的东西564),因为我们知道它不匹配任何东西.
算法(用于AND查询)基本上是一个数组交集.当你得到一个十字路口时,你会处理它.否则你继续跳过.
更新:许多实现使用跳过列表来避免在处理反向列表时进行比较.在上面的示例中,系统可以使用跳过列表"跳转"到CD具有接近10的doc_id 的反向列表的下一个位置.这样就不需要与6和进行比较8.