Lucene 中的 ConstantScoreRangeQuery

发布于 2024-07-25 20:11:38 字数 341 浏览 4 评论 0原文

Lucene 的 ConstantScoreRangeQuery 比旧的 RangeQuery

什么情况下应该使用RangeQuery?

How is Lucene's ConstantScoreRangeQuery better than the old RangeQuery?

In what case should you use still use RangeQuery?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

另类 2024-08-01 20:11:38

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

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

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

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

According to the RangeQuery documentation in your link,
A ConstantScoreRangeQuery:

  • is faster than RangeQuery.
  • does not cause a BooleanQuery.TooManyClauses exception if the range of values is large.
  • does not influence scoring based on the scarcity of individual terms that may match.

Suppose you are interested in scarcer terms being scored higher (say you are looking in a range of hours, but want the scarcer hours to be scored higher - maybe you are looking for a "slow" period of the day to run a backup process). In that case the older RangeQuery seems preferable.

The next generation will be the TrieRangeQuery, currently in the contrib section. It will probably part of the Lucene 2.9 core. It provides faster range queries than both other methods.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文