solr 短文本搜索(模糊,拼音,单字分词)

一、期望达到的效果

短文本模糊搜索,支持拼音搜索、数字的前后缀搜索、单字或者单字母搜索。最多支持20个字符长度,更多介绍及注意事项参见模糊搜索使用说明

如文档字段内容为“菊花茶”,则搜索“菊花茶”、“菊花”、“茶”、“花茶”、“菊”、“花”、“菊茶”、“ju”、“juhua”、“juhuacha”、“j”、“jh”、“jhc”等情况下可以召回。
如文档字段内容为手机号“13812345678”,则通过“^138”来搜索以“138”开头的手机号,通过“5678$”搜索以“5678”结尾的手机号;
如文档字段内容为“OpenSearch”,则通过单个字母或者组合都可以检索到。

二、步骤

1.先下载两个jar包 ,并将jar包上传到solrlib文件夹底下

pinyin4j-2.5.0.jar                         pinyinAnalyzer4.3.1.jar

 

 

 

2.在solr的schema文件底下配置如下

<fieldType name="short_text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index"> 
<tokenizer class="solr.StandardTokenizerFactory"/> 
<filter class="solr.ReversedWildcardFilterFactory" withOriginal="true" 
maxPosAsterisk="3" maxPosQuestion="1" maxFractionAsterisk="0.33"/> 
<filter class="com.shentong.search.analyzers.PinyinTransformTokenFilterFactory" minTermLenght="1" /> 
<filter class="com.shentong.search.analyzers.PinyinNGramTokenFilterFactory" minGram="1" maxGram="20" />
</analyzer> 
<analyzer type="query"> 
<tokenizer class="solr.StandardTokenizerFactory"/> 
</analyzer> 
</fieldType>

 

参数详解:

withOriginal:如果为true,那么在相同的位置产生原始的和反向的词元,如果为false,则只产生反向词元

maxPosAsterisk:指的是“*”最大在第几位会被翻转,默认是2,比如当前值等于2的时候,搜索*明星和 女*明星  都会被翻转,建议默认值就行。

maxPosQuestion:指的是?号最大在第几位查询此会被翻转,默认为1。设置为0,1和maxposasterisk扭转单纯后缀查询

minTrailing:触发反转的附加参数,如果星号(“*”)的位置是低于这个分数查询标记长度。默认值为0.0f(禁用

maxFractionAsterisk:最低数量的尾随字符通配符查询令牌过去后。为了好的性能,这应该设置为大于1的值。默认为2
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值