2

Lucene 的ConstantScoreRangeQuery如何比旧的RangeQuery更好?

在什么情况下你应该使用仍然使用 RangeQuery?

4

1 回答 1

2

根据您链接中的 RangeQuery 文档,A ConstantScoreRangeQuery:

  • 比 RangeQuery 快。
  • 如果值的范围很大,则不会导致 BooleanQuery.TooManyClauses 异常。
  • 不影响基于可能匹配的单个术语的稀缺性的评分。

假设您对获得更高分数的稀缺术语感兴趣(假设您正在查看一系列小时,但希望获得更高分数 - 也许您正在寻找一天中的“慢”时段来运行备份过程) . 在这种情况下,较旧的 RangeQuery 似乎更可取。

下一代将是TrieRangeQuery,目前在 contrib 部分。它可能是 Lucene 2.9 核心的一部分。它提供比其他两种方法更快的范围查询。

于 2009-06-28T11:35:34.833 回答