我正在使用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管理界面中执行了查询,并在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引用了多字过滤器,因此在这种情况下会产生错误的结果。
答案 0 :(得分:0)
如果没有查看索引中的数据,很难准确诊断为什么会有不同数量的结果,但是由于字段语法的原因,您的查询可能无法按预期运行。
过滤器查询areas:Finanz- & Rechnungswesen
将被解析为:
areas:Finanz- {default_field}:rechnungswesen
其中 {default_field} 是在未提供默认字段时已配置为默认字段的任何内容。
为了更轻松地调试这些查询,请查看debugQuery=true
的结果,这也可以在
Solr Admin UI's query interface
要确保所有字词仅限于区域字段,请使用括号,例如:
areas:(Finanz- & Rechnungswesen)
有关更多详细信息,请查看Solr查询解析器语法:https://wiki.apache.org/solr/SolrQuerySyntax#Default_QParserPlugin:_LuceneQParserPlugin