当我在搜索查询中包含“of”字时,为什么Sunspot Solr不会带来结果?

时间:2012-09-29 07:34:00

标签: ruby-on-rails-3 solr sunspot sunspot-rails

我正在尝试使用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)的管理界面上进行相同的查询时,它突出显示匹配。

你能帮助我,找到我的错误吗?

提前致谢 Panayotis

1 个答案:

答案 0 :(得分:1)

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