【问题标题】:SOLR / Lucene MultiFieldQueryParserSOLR / Lucene MultiFieldQueryParser
【发布时间】:2014-03-11 21:29:13
【问题描述】:

我希望查询一个 Lucene 索引并提出问题“..字符串 ABC 是否出现在字段 A 和字符串 DEF 中...

BOTH 条件(字段 A 中的 ABC 和字段 B 中的 DEF)必须为真 ....我胡闹了 经过几次搜索,似乎没有找到正确的组合。

任何想法/示例......似乎 MultiFieldQueryParser 可能是答案,但到目前为止我还没有运气。

【问题讨论】:

    标签: solr lucene


    【解决方案1】:

    标准查询解析器支持这种查询,例如:

    +fielda:ABC +fieldb:DEF
    

    + 字符是必需的运算符,因此此查询需要匹配 fielda:ABCfieldb:XYZ

    请参阅query parser syntax documentation,了解更多信息。

    MultiFieldQueryParser 用于在多个字段中自动搜索相同的内容,因此不是您要查找的内容。

    【讨论】:

    • 感谢您的回复...我在浏览器中使用 SOLR 搜索并输入 http://..../select?q=+fielda:ABC AND +fieldb:DEF ...这会返回任何在 fielda 中使用 ABC 或在 fieldb 中使用 DEF ...我过去使用过 Lucene 搜索并假设 SOLR 可以正常工作...我猜我错了。
    • 您确定查询是正确的URL Escaped 吗?当没有 URL 转义查询时,丢失 + 可能是一个问题。最终查询可能类似于:q=%2Bfielda:ABC%20%2Bfieldb:DEF。此外,+this AND +that 可能工作正常,但没有意义。 this AND that 基本上是+this +that 的简写,所以我会选择其中一个。我会选择 +/- 语法。它对 lucene 更有意义,也更强大。
    【解决方案2】:

    结果是在 SOLR 浏览器搜索中,URL 上的 q.OP=AND 将提供我正在寻找的 ANDING 条件。

    【讨论】:

      猜你喜欢
      • 2015-08-21
      • 1970-01-01
      • 2012-02-09
      • 1970-01-01
      • 2011-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-04
      相关资源
      最近更新 更多