我有许多数字 Lucene 索引字段:
60000
78500
105000
如果我使用 LUKE 查询 78500 如下:
price:78500
它返回正确的记录,但是如果我尝试将所有三个记录作为一个范围返回,我将不会得到任何结果。
price:[60000 TO 105000]
我意识到这是由于填充,因为数字被 Lucene 处理为字符串,但是我只想知道我应该将什么放入 LUKE 以返回三个记录。
非常感谢您的帮助。
最佳答案
如果字段被索引为 NumericField,您必须在查询解析器选项卡和 3.5 版本的 Luke 中使用“使用 XML 查询解析器”选项:
https://code.google.com/p/luke/downloads/detail?name=lukeall-3.5.0.jar&can=2&q=
带有字符串和 数字字段 的查询示例是:
<BooleanQuery>
<Clause fieldName="colour" occurs="must">
<TermQuery>rojo</TermQuery>
</Clause>
<Clause fieldName="price" occurs="must">
<NumericRangeQuery type="int" lowerTerm="4000" upperTerm="5000" />
</Clause>
</BooleanQuery>
关于indexing - 使用 LUKE 进行 Lucene 数字范围搜索,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4884241/