java - 如何在lucene中查询int和float元素

标签 java lucene

每次我的 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/

相关文章:

java - 将 java 类作为闭包绑定(bind)到 groovy 脚本中

java - 限制 Java EE 应用程序中的并发资源使用

java - JAX-RS - Wink - 使用 Wink 客户端读取文件的正确方法

lucene - ElasticSearch 在哪里存储持久设置?

java - Solr 从索引中提取数据到 XML 文件

c# - JAVA垃圾收集副作用——阻塞?

java - 安卓 TreeView

java - lucene 3.5.0 索引时出现堆栈溢出错误

java - 用于在 ElasticSearch 中搜索短语的分析器

Java,找不到符号: method methodName(org. bla.blabla.myClass)