Search 如何在反向索引结构中搜索短语查询?

Search 如何在反向索引结构中搜索短语查询?,search,phrase,inverted-index,Search,Phrase,Inverted Index,如果我们想在倒排索引结构中搜索像“t1 t2 t3”(t1,t2,t3必须排队)这样的查询, 我们应该怎么做 1-首先,我们搜索“t1”术语并找到包含“t1”的所有文档,然后对“t2”和“t3”执行此操作。然后查找“t1”、“t2”和“t3”位置相邻的文档 2-首先,我们搜索“t1”术语并找到包含“t1”的所有文档,然后在我们找到的所有文档中,我们搜索“t2”,然后,在搜索结果中,我们找到包含“t3”的文档 我有一个完整的倒排索引。我想知道上面哪种方法是优化的,(1)或(2) 非常感谢。正如条目

如果我们想在倒排索引结构中搜索像“t1 t2 t3”(t1,t2,t3必须排队)这样的查询, 我们应该怎么做

1-首先,我们搜索“t1”术语并找到包含“t1”的所有文档,然后对“t2”和“t3”执行此操作。然后查找“t1”、“t2”和“t3”位置相邻的文档

2-首先,我们搜索“t1”术语并找到包含“t1”的所有文档,然后在我们找到的所有文档中,我们搜索“t2”,然后,在搜索结果中,我们找到包含“t3”的文档

我有一个完整的倒排索引。我想知道上面哪种方法是优化的,(1)或(2)

非常感谢。

正如条目所解释的

有两个主要的变体 反向指数:A创纪录水平 反向索引(或反向文件索引 或者只倒排文件)包含一个列表 每种文件的参考文献数量 单词单词级倒排索引(或 完全倒排索引倒排列表) 另外还包含 文档中的每个单词。这个 后一种形式提供了更多的功能 (如短语搜索),但需要更多 要创建的时间和空间

由于您没有告诉我们您有哪种变体,我们无法准确回答您的问题,但考虑每种可能性会有所帮助

打开和搜索文档通常是一项成本高昂的操作,除非您的文档非常小,所以您希望将其最小化,而选项(2)并没有真正将其最小化。如果您有一个倒排列表,使用选项(1),您甚至不需要打开任何文档;如果您只有一个倒排文件,您将不可避免地需要打开文档并扫描它们(因为您缺少确认单词邻接的信息)——但至少使用选项(1),您可以最小化必须打开和扫描的文档数(仅限于包含每个单词的文档列表交叉处的文档)

因此,无论哪种情况,选项(1)都更有希望(除非您的文档特别小)