斯坦福NLP笔记73 —— Query Processing with the Inverted I

"AND"类的查询处理

假设有上述的Inverted Index结构,现在的问题是要找出两个同时包含了Brutus和Caesar的doc,尽管这个问题一点不复杂,教授依然给出了详细的算法步骤:

  • 分别用两个指针指向上下两个posting的首项,即pointer1指向“2”,pointer2指向“1”,比较他们指向的数字的大小,分以下几种情况:

  • 如果pointer2指向的数较小,则pointer2向前移动一位,否则pointer1向前移动一位

  • 如果两个数相等,则两指针同时前移一位

  • 若有一边到了终点,则循环结束

如果两个posting的长度分别是X和Y,这样的算法时间复杂度是O(X+Y),当然这也做有前提:posting是已经排好序的。

斯坦福NLP笔记73 —— Query Processing with the Inverted I

你可能感兴趣的:(斯坦福NLP笔记73 —— Query Processing with the Inverted I)