我在python中創建了一個非常基本的搜索引擎,我正在創建一個處理短語查詢的方法,所以如果2個單詞的位置在1之內,它們在文檔中彼此相鄰並在發生這種情況時輸出所有文件號。比較python字典值
我現在有一本字典,看起來像這樣
{'8':[['1170', '1264', '1307', '1559', '1638'], ['197', '1169']],
'6':[['345', '772'], ['346']}
這僅僅是一個佈局的例子。
w=word, p=position ||
{doc1:[w1p1, w1p2, w1p3],[w2p1, w2p2]}
的關鍵是文件ID,其次是第一個字包含,則第二個字的位置,該文件中的位置。將會有與查詢中一樣多的單詞(職位分組)。
我的問題是,有沒有辦法讓我可以比較同一個文件ID的1和2nd + 3rd等值的值?我想比較一下,看一個單詞的位置是否只有另一個單詞的+1。
所以你可以看到doc 6字2跟隨字1,這將導致密鑰被髮回。
單詞數量可能會增加,因爲它是查詢中單詞的數量。 – simitar
@simitar答案的第二部分實現了「mergesort」的「合併」部分,它可以推廣到任意數量的列表。 –
@BiRico,我將如何去做這件事,因爲我需要比較1和2的位置,然後是2和3的位置,等等,以便查詢中的多個單詞。 – simitar