我有许多数字Lucene索引字段:
60000
78500
105000如果我使用LUKE查询78500,如下所示:
price:78500它返回正确的记录,但是,如果我试图返回所有三个记录作为一个范围,我没有得到任何结果。
price:[60000 TO 105000]我意识到这是由于填充,因为数字是Lucene处理的字符串,但是我只想知道我应该在LUKE中放入什么才能返回这三条记录。
非常感谢您的帮助。
发布于 2011-02-07 18:31:35
我使用的解决方案是,需要将为价格输入的值以填充形式添加到索引中。然后,我将只查询新的填充值,它工作得很好。因此,索引中的新值为:
060000
078500
105000这个解决方案被捆绑到一个检查Umbraco的搜索问题中,所以论坛上有一个关于如何实现基于数字的范围搜索的线索,如果有人需要的话,它位于这里,并进行了端到端的遍历。
Umbraco Forum Thread
发布于 2013-05-07 00:20:46
如果字段被索引为NumericField,则必须使用查询解析器选项卡中的"Use XML Query Parser“选项和3.5版本的Luke3.5:
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>发布于 2011-02-04 05:27:09
price:[10500 TO 78500]希望这能帮上忙
https://stackoverflow.com/questions/4884241
复制相似问题