我使用NumericField
在lucene索引中编写Integer
:
doc.add(
new NumericField("id",Integer.MAX_VALUE,Field.Store.YES,true)
.setIntValue(123)
);
现在我遇到了问题,如何通过id字段(NumericField)编写搜索表达式?
我试过了:
id:123
和id:intToPrefixCoded(123)
但没有返回
参考:
答案 0 :(得分:2)
这不起作用,因为数字字段的内部表示与其文本表示不同。您应该手动构造数字查询或扩展Lucene query parser。您需要做的就是扩展new*Query
(Term,Range,...)方法并对字段名称进行if / else测试,以了解您是应该创建数字查询还是常规查询。 / p>
有关详细信息,请参阅Lucene wiki。