Solr 4.10.3 集成 IK Analyzer 2012FF 中文分词器

本文导读

  1. 第一步:把 IKAnalyzer2012FF_u1.jar 添加到 solr/WEB-INF/lib 目录下。
  2. 第二步:复制 IKAnalyzer 的配置文件和自定义词典和停用词词典到 solr 的 classpath 下。
  3. 第三步:在 schema.xml 中添加一个自定义的 fieldType,使用中文分析器。
  4. 第四步:定义 field,指定 field 的 type 属性为 text_ik

复制 jar 包

  • 将 IKAnalyzer2012FF_u1.jar 开发包添加到 Tomcat 服务器下的 webapps/solr/WEB-INF/lib 目录下。

设置扩展/停用词典

  • 复制 IKAnalyzer 的配置文件和自定义词典和停用词词典到 Tomcat 下的 solr 应用的 classpath 下。
  • 如果不使用扩展词典、停用词典,不做这一步操作也是没有问题的,对于扩展词典、停用词典不熟的可以参考《可以参考《 Lucene 中文分词器 Ik-Analyzer 使用教程》》

修改 schema. xml

  • 在 schema.xml 中添加一个自定义的 fieldType,使用中文分析器。
  • 自定义定义 Field,指定 Field 的 type 属性为 自定义的 FieldType。
  • 如下所示,新加 FieldType 与 Field 到 schema.xml 文件的末尾。

  <!--
     <similarity class="com.example.solr.CustomSimilarityFactory">
       <str name="paramkey">param value</str>
     </similarity>
    -->

    <!-- IKAnalyzer-->
    <fieldType name="text_ik" class="solr.TextField">
      <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
    </fieldType>

   <!--IKAnalyzer Field-->
   <field name="title_ik" type="text_ik" indexed="true" stored="true" multiValued="true"/>
   <field name="content_ik" type="text_ik" indexed="true" stored="true" multiValued="true"/>
   <field name="name_ik" type="text_ik" indexed="true" stored="true"/>
</schema>

分词测试

  • 启动安装了 Solr 的 Tomcat 服务器,然后访问 Solr
  • 输入测试的中文语句,然后选择新增的 IK-Analyzer 的 FieldType 或者 Field ,进行索引或者查询测试,结果如下,效果良好。

  • 实际项目中数据仍然建议放入数据库中,如果需要使用大量的 “ like ” 进行模糊查询,应用数据量又大的话,这个时候可以使用“ 全文搜索引擎 ”进行优化,因为 模糊查询 数据库中使用的是全表扫描算法,效率太低。
  • 如果上面设置了“扩展和停用词典”,则使用 Ik-Analyzer 的时候,就加载并使用它们,如下所示:

 

 

猜你喜欢

转载自blog.csdn.net/wangmx1993328/article/details/82422840
今日推荐