solr 搜索时加空格没有结果

使用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="油"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值