每次我的 eclipse 应用程序加载项目时,我都使用 Lucene 5.3.1 建立索引。 我的索引存储 Long 和 Double 类型的数字信息。 对于索引,我使用字段
org.apache.lucene.document.LongField
和
org.apache.lucene.document.DoubleField
简化示例:
final long valueL =...;
final double valueD =...;
new LongField(VALUE, valueL, Field.Store.YES)
new LongField(VALUE, valueD, Field.Store.YES)
如果我想搜索(NumericRangeQuery)大于 n 的数值,结果只考虑索引中与 n 相同类型的元素。 例如。 如果 n 是 Double,我只从索引接收 Double 元素,所有 Long 元素都被忽略。
"n > 2.1" --> (+VALUE:{2.1 TO *})
返回:
3.4
2.1
但不是
5
等等。
有没有办法在一个查询中同时获得 Long 和 Double 结果?
最佳答案
这应该有效:
(+VALUE:{2.1 TO *} +VALUE:{2 TO *})
关于java - 如何在lucene中查询int和float元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33804339/