lucene搜索表达式(Query Parser Syntax)可以搜索NumericField吗?

时间:2012-07-02 06:17:32

标签: search search-engine lucene.net lucene

我使用NumericField在lucene索引中编写Integer

doc.add(
    new NumericField("id",Integer.MAX_VALUE,Field.Store.YES,true)
        .setIntValue(123)
);

现在我遇到了问题,如何通过id字段(NumericField)编写搜索表达式?

我试过了:

id:123id:intToPrefixCoded(123)

但没有返回

参考:

1 个答案:

答案 0 :(得分:2)

这不起作用,因为数字字段的内部表示与其文本表示不同。您应该手动构造数字查询或扩展Lucene query parser。您需要做的就是扩展new*Query(Term,Range,...)方法并对字段名称进行if / else测试,以了解您是应该创建数字查询还是常规查询。 / p>

有关详细信息,请参阅Lucene wiki