您的位置:首页 > 其它

solr 搜索时加空格没有结果

2013-09-26 17:31 459 查看
使用SOLR搜索时候常会出现以下问题,比如搜索“茶油” 可以搜索到结果,但是 茶和油之间加个空格就没有结果了

首先你要了解产生这个原因的原理。

schema.xml
<defaultSearchField>name</defaultSearchField>


solrconfig.xml
<requestHandler name="/select" class="solr.SearchHandler">
<lst name="defaults">
<str name="echoParams">explicit</str>
<int name="rows">10</int>
<str name="df">text</str>
</lst>
</requestHandler>


schema.xml中defaultSearchField和solrconfig.xml中df属性都是默认搜索字段的意思,不过后者只针对"/select"请求。优先级是solrconfig.xml的df高于schema.xml的defaultSearchField

设置默认搜索字段的效果:搜索条件为 title:随意 问,中间的空格默认相当于OR,"text"优先于"name",因此搜索条件等价于 title:随意 OR text:问,所以会搜索不出结果。

建议解决方法:

方法1:可以将搜索条件变为 title:(随意 问),等价于 title:随意 OR title:问

方法 2:搜索条件不变,查询时URL加上df参数"&df=title",也可以解决。

方法3:把
<str name="df">text</str>

改为你要默认的查询字段比如改为name  搜索"茶 油"的时候 及类似鱼 name="茶" or  name="油"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: