欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ik-analyzer-solr8.3.1 / solr使用text_ik插件 查询字段不分词

程序员文章站 2022-07-04 23:50:13
...

solr使用复合字段查询,发现没有和solr数据库的匹配的结果,这是因为查询字段没有分词.
ik-analyzer-solr8.3.1 / solr使用text_ik插件 查询字段不分词
看之前旧版的ik-analyzer-solr,发现在managed-schema的配置不一样.

新版原文是:
3.配置Solr的managed-schema,添加ik分词器,示例如下;

<!-- ik分词器 -->
<fieldType name="text_ik" class="solr.TextField">
  <analyzer type="index">
      <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" conf="ik.conf"/>
      <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
  <analyzer type="query">
      <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" conf="ik.conf"/>
      <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
</fieldType>

经测试,发现将query的useSmart=“true” 改成 useSmart=“false” 即可,应该是为了减少性能损耗,查询字段默认不分词了.

贴上完整的:

<!-- ik分词器 -->
<fieldType name="text_ik" class="solr.TextField">
  <analyzer type="index">
      <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" conf="ik.conf"/>
      <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
  <analyzer type="query">
      <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" conf="ik.conf"/>
      <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
</fieldType>

改完,重启后,多刷新几次页面,可在solr测试.