0

我知道 Lucene 中有一个 NumericRangeQuery,但是是否可以让 lucene 简单地返回存储在 NumericField 中的最大值。我可以在整个已知范围内使用 RangeQuery 然后排序,但这非常麻烦,如果有很多记录,它可能会返回大量结果

4

2 回答 2

1

的第二个参数IndexSearcher.search(Query query, int n, Sort sort)允许指定前 n 个匹配项(在您的情况下为 1),如果您正确排序,它只会返回所需的结果。还有其他重载方法可以实现相同的目标。

虽然不能争论繁琐:)

于 2012-05-11T15:31:25.573 回答
0

您可以通过您的索引Term Enum 。不幸的是,我不认为它们的排序方式可以立即找到最大值,但至少您不必进行实际搜索即可找到它。您需要使用NumericUtils将 Lucene 的内部结构转换为普通数字。

该线程包含一个示例。

于 2012-05-11T19:18:25.190 回答