【发布时间】:2014-03-11 21:29:13
【问题描述】:
我希望查询一个 Lucene 索引并提出问题“..字符串 ABC 是否出现在字段 A 和字符串 DEF 中...”
BOTH 条件(字段 A 中的 ABC 和字段 B 中的 DEF)必须为真 ....我胡闹了 经过几次搜索,似乎没有找到正确的组合。
任何想法/示例......似乎 MultiFieldQueryParser 可能是答案,但到目前为止我还没有运气。
【问题讨论】:
我希望查询一个 Lucene 索引并提出问题“..字符串 ABC 是否出现在字段 A 和字符串 DEF 中...”
BOTH 条件(字段 A 中的 ABC 和字段 B 中的 DEF)必须为真 ....我胡闹了 经过几次搜索,似乎没有找到正确的组合。
任何想法/示例......似乎 MultiFieldQueryParser 可能是答案,但到目前为止我还没有运气。
【问题讨论】:
标准查询解析器支持这种查询,例如:
+fielda:ABC +fieldb:DEF
+ 字符是必需的运算符,因此此查询需要匹配 fielda:ABC 和 fieldb:XYZ。
请参阅query parser syntax documentation,了解更多信息。
MultiFieldQueryParser 用于在多个字段中自动搜索相同的内容,因此不是您要查找的内容。
【讨论】:
+ 可能是一个问题。最终查询可能类似于:q=%2Bfielda:ABC%20%2Bfieldb:DEF。此外,+this AND +that 可能工作正常,但没有意义。 this AND that 基本上是+this +that 的简写,所以我会选择其中一个。我会选择 +/- 语法。它对 lucene 更有意义,也更强大。
结果是在 SOLR 浏览器搜索中,URL 上的 q.OP=AND 将提供我正在寻找的 ANDING 条件。
【讨论】: