【问题标题】:Can lucene search expression(Query Parser Syntax) search a NumericField filed?lucene 搜索表达式(查询解析器语法)可以搜索 NumericField 字段吗?
【发布时间】:2012-07-02 06:17:31
【问题描述】:

我用NumericField在lucene索引中写了Integer

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

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

我试过了:

id:123id:intToPrefixCoded(123)

但没有任何回报

参考:

【问题讨论】:

标签: search search-engine lucene.net lucene


【解决方案1】:

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

更多信息请参见Lucene wiki

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-29
    • 1970-01-01
    • 1970-01-01
    • 2012-01-08
    相关资源
    最近更新 更多