隐藏

solr配置IK分词器并设置粗细粒度

发布:2022/10/31 13:59:11作者:管理员 来源:本站 浏览次数:737


solr配置IK分词器并设置粗细粒度


solr加入索引时使用分词器,搜索时也使用该分词器,导致搜索时返回数据不准确


如:

搜索清华大学

经ik分词显示结果为

清华/大学/清华大学


此时结果中含有大学的都会被返回

北京大学

清华大学

。。。


这不是我们想要返回结果


我们希望只有清华大学被显示出来


也就是说在搜索的词中不分词


在配置ik分词器时加入属性

isMaxWordLength = “true”

表示使用粗粒度搜索


完整配置如下


<fieldType name="text_ik" class="solr.TextField" positionIncrementGap="100">    

    <analyzer type="index">    

        <tokenizer class="org.wltea.analyzer.lucene.IKAnalyzerSolrFactory" isMaxWordLength="false"/>    

        <filter class="solr.LowerCaseFilterFactory"/>    

    </analyzer>    

    <analyzer type="query">    

        <tokenizer class="org.wltea.analyzer.lucene.IKAnalyzerSolrFactory" isMaxWordLength="true"/>        

        <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>    

        <filter class="solr.LowerCaseFilterFactory"/>    

    </analyzer>    

 </fieldType>


如果配置后启动solr报错 找不到ik分词器使用这里提供的jar包替换先前的即可

ik分词器支持粗细粒度分词.jar