使用LUKE进行Lucene数值范围搜索

Kev*_*vin 3 lucene indexing luke

我有许多数字Lucene索引字段:

60000
78500
105000
Run Code Online (Sandbox Code Playgroud)

如果我使用LUKE查询78500,如下所示:

price:78500
Run Code Online (Sandbox Code Playgroud)

它返回正确的记录,但如果我尝试将所有三个记录作为一个范围返回,我得不到任何结果.

price:[60000 TO 105000]
Run Code Online (Sandbox Code Playgroud)

我意识到这是由于填充,因为Lucene对数字进行了处理,但我只是想知道我应该把什么放入LUKE来返回三条记录.

非常感谢任何帮助.

alo*_*oon 11

如果字段被索引为NumericField,则必须在查询解析器选项卡和Luke的3.5版本中使用"使用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>
Run Code Online (Sandbox Code Playgroud)