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