solr模糊查询

今天重点讲模糊检索中文名字

solr对中文进行分词,如果不是一个词,可能会丢失字,然后在查询名字的,会感觉不太准确。


solr里面提供了很多查询匹配的方法例如:

1.使用*:resume_keyword:*王*

2.使用AND 拼接查询 keywords:*建筑* AND personName:*王* 

3.OR keyword:建筑 OR personName:王

4. 否: AND resume_keyword:(* NOT *李*)  上面的都是用拼接的,也可以用过滤query.addFilterQuery(" per_name:(*李* )");

5.名字匹配法:之前做搜索的时候,名字设置成了分词,然后分词结果不太准确,比如:ABC,它可能分成了AB 然后没有C,所以你在查询的时候,就查不到ABC。

   之前的分词是IK

<fieldType name="text_ik" class="solr.TextField">
    <analyzer type="index" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
    <analyzer type="query" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
  </fieldType>

出现了上述问题,然后我们研究了一下schema.xml里面的属性类型,之前用text_ik, 改成了text_general,这样它就可以把ABC分成了A,B,C 通过一个其中的一个字或者ABC都可以检索了,就不用上面的模糊匹配了,就算匹配了,也不太准,可能把自己需要的那一行数据放到了第七八行,而不是第一行。如果按照上面修改,就可以把想要的数据放到第一位了

期间看到网上有介绍,把你传入的字进行分词,然后把分的词当条件传进去,这种思路可行,我觉得比较符合检索文章的关键字

还在继续摸索solr,schema.xml里面有很多东西需要学习,如果明白了这个,我觉得solr的核心东西,你基本就懂了


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值