lucene查询中的字段顺序

时间:2013-08-30 15:12:31

标签: solr lucene

lucene查询中字段的顺序是否重要?

例如,

q = A&& B&& ç

让我们说A出现在一百万份文件中,B在10000,C在1000。

虽然结果是相同的,无论您的AND顺序如何 A,B和C,以下查询的响应时间会有什么不同吗?

C&& B&&甲

A&& B&& ç

Lucene / Solr是否根据给定查询的空间和时间选择了最佳查询执行计划?

2 个答案:

答案 0 :(得分:0)

如果查询为A AND B AND CC AND B AND A无关紧要,查询执行时间将相同。
此外,如果您执行AND,则需要为要返回的文档提供所有查询字词,因此文档频率将相同。
但是,术语频率会有所不同,因而得分。

答案 1 :(得分:0)

根据定义,Lucene是“一个高性能的全功能文本搜索引擎库[...]”。 分析每个术语出现的文档数量很容易决定执行AND操作和Lucene的顺序,当然也可以。

如果您对算法感兴趣,可以获得在最低基数的术语之间执行AND的最佳性能,并持续到最高的那个。

通过这种方式,由于排序发布列表上的合并算法[O(n + m),两个发布列表的n和m长度]和跳过指针,您可以迭代一个较小数量的docIDs。