我在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