0

我用NumericField写一个Integerin lucene 索引:

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

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

我试过了:

id:123id:intToPrefixCoded(123)

但没有任何回报

参考:

4

1 回答 1

2

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

有关更多信息,请参阅Lucene 维基

于 2012-07-02T09:19:55.383 回答