0

我正在使用 Solr 4.10.0 / Lucene 4.10.0 的过滤器查询并且有一个奇怪的情况,虽然

  • fq=areas:Finanz- & Rechnungswesen
  • fq=areas:"Finanz- & Rechnungswesen"

产生相同的文件集,

  • fq=areas:E-Commerce & Neue Medien
  • fq=areas:"E-Commerce & Neue Medien"

不要——在后一种情况下,结果集是空的。

我在 Solr 管理 UI 中执行了查询,并在 Solr 日志中检查了过滤器是否正确转换为查询参数

  • fq=areas:Finanz-+%26+Rechnungswesen
  • fq=areas:"Finanz-+%26+Rechnungswesen"
  • fq=areas:E-Commerce+%26+Neue+Medien
  • fq=areas:"E-Commerce+%26+Neue+Medien"

分别。只有在最后一种情况下,结果集是空的。谁能解释为什么会这样?不幸的是,Spring Data Solr 引用了多词过滤器,因此在这种情况下它给出了错误的结果。

4

1 回答 1

0

如果不查看索引中的数据,就很难准确诊断为什么会有不同数量的结果,但是由于字段语法,您的查询可能不会像您预期的那样运行。

过滤器查询areas:Finanz- & Rechnungswesen将被解析为: areas:Finanz- {default_field}:rechnungswesen其中{default_field}是未提供时已配置为默认字段的任何内容。

为了更轻松地调试这些查询,请使用 来查看结果debugQuery=true,这也可以在 Solr Admin UI 的查询界面中完成。

为确保所有术语仅限于您的区域字段,请使用括号,例如:

areas:(Finanz- & Rechnungswesen)

有关更多详细信息,请查看 Solr 查询解析器语法:https ://wiki.apache.org/solr/SolrQuerySyntax#Default_QParserPlugin:_LuceneQParserPlugin

于 2016-01-30T11:40:27.297 回答