【问题标题】:Lucene -- filter documents with specific fieldLucene -- 过滤具有特定字段的文档
【发布时间】:2012-09-05 16:08:45
【问题描述】:

关于我之前的问题 (Lucene downgrade 3.6.0 to 3.5.0),我想知道如何过滤掉那些具有或不具有特定字段(无论该字段的内容)的文档(在 Lucene 3.5.0 中)。在 Lucene 3.6.0 中有一个 FieldValueFilter 类可用于执行此操作。 here 提出了同样的问题,但我不确定如何使用 API 完成同样的事情。

【问题讨论】:

    标签: java search lucene


    【解决方案1】:

    最后我自己找到了解决方案。我用TermRangeFilter。我使用的字段包含 ID(存储为字符串),因此我使用了以下过滤器:

    Filter filter = new TermRangeFilter("field", "0", null, true, false);
    

    同样的事情也可以用这个短代码来实现:

    Filter filter = TermRangeFilter.More("filter", "0");
    

    此解决方案似乎有效。我希望这会对某人有所帮助!

    【讨论】:

    • 如果你想要所有的值,那么为什么要限制为“0”呢?您可以使用: Filter filter = new TermRangeFilter("field", null, null, false, false);翻译成:字段:{* TO *}
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多