0

我正在尝试使用 sunspot/solr 进行简单查询,但当我的查询字符串包含单词“of”时,我似乎无法获取结果。

更具体:

当我查询“塞萨洛尼基大学”时,solr 没有返回任何命中,但当我查询“塞萨洛尼基大学”时,它会返回。

以下是日志:

Sep 29, 2012 10:24:56 AM org.apache.solr.core.SolrCore execute
INFO: [] webapp=/solr path=/select params={fl=*+score&start=0&q=University+of+Thessaloniki&qf=status_code_text+pi_details_text+other_party_name_text+contact_details_text+other_pi_details_text+sending_or_receiving_text+start_at_str_text+materials_text&wt=ruby&fq=type:Mta&defType=dismax&rows=10000} hits=0 status=0 QTime=8 

Sep 29, 2012 10:25:09 AM org.apache.solr.core.SolrCore execute
INFO: [] webapp=/solr path=/select params={fl=*+score&start=0&q=University+Thessaloniki&qf=status_code_text+pi_details_text+other_party_name_text+contact_details_text+other_pi_details_text+sending_or_receiving_text+start_at_str_text+materials_text&wt=ruby&fq=type:Mta&defType=dismax&rows=10000} hits=9 status=0 QTime=5 

当我直接在 sunspot/solr ( http://localhost:8981/solr/admin/analysis.jsp?highlight=on) 的管理界面上进行相同的查询时,它会突出显示匹配项。

你能帮我找出我的错误吗?

在此先感谢帕纳约蒂斯

4

1 回答 1

1

您正在使用 dismax 查询解析器,它允许您配置应该匹配的最小数量。默认值为 100%,表示所有子句必须匹配。显然你的文件不包含这个词of。如果是这种情况,您只需要配置 minimum should match 参数,考虑到它的行为会根据您使用的 solr 版本略有变化。另一方面,如果你认为你有这个词of,我建议你检查一下你是如何索引你的文档的。您是否有可能在索引时间而不是在查询时间应用停用词过滤器?

于 2012-09-29T15:18:29.363 回答