IKAnalyzer 中文分词支持Solr 6以上 solrj 6

来源:互联网 发布:如何评价食草家族 知乎 编辑:程序博客网 时间:2024/06/07 09:39

IKAnalyzer 中文分词支持Solr 6以上 solrj 6

目录

  • IKAnalyzer 中文分词支持Solr 6以上 solrj 6
    • 目录
    • 源码工程
      • 使用步骤说明
        • 配置文件处理
        • 配置文件说明
        • 引入使用
        • 运行使用

IKAnalyzer 根据最新源码改造,以适配6.0以上solr ,支持IKAnalyzer和IKTokenizerFactory两种方式做分词:

  • 支持IKAnalyzer
  • 支持IKTokenizerFactory

源码工程

工程代码放在Github上,本文只讲述具体使用方法。 —— [ IKAnalyzer工程源码 ]

使用步骤说明

配置文件处理

将src/main/resources下配置文件放到solr工程WEBINF/classes下
IKAnalyzer.cfg.xml 主要是IK分词的配置文件,用于定义扩展字典和截止字典
ext.dic 扩展字典
stopword.dic 截止字典
将pom.xml里面的src/main/resources的过滤注释掉就可以直接放在jar包中使用,不需要额外放配置文件

配置文件说明

IKAnalyzer.cfg.xml说明
如下:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">  <properties>      <comment>IK Analyzer 扩展配置</comment>    <!--用户可以在这里配置自己的扩展字典 -->    <entry key="ext_dict">ext.dic;</entry>     <!--用户可以在这里配置自己的扩展停止词字典-->    <entry key="ext_stopwords">stopword.dic;</entry> </properties>

引入使用

maven打包生成jar
放入lib下
修改schema.xml,增加以下配置即可以使用分词搜索
参考如下代码片段
<field name="content_factpry" type="textComplex" indexed="true" stored="true"/><fieldType name="textComplex" class="solr.TextField" positionIncrementGap="100">  <analyzer type="index">    <tokenizer class="org.wltea.analyzer.factory.IKTokenizerFactory" useSmart="true"/>   <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />    <!-- in this example, we will only use synonyms at query time    <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>    -->    <filter class="solr.LowerCaseFilterFactory"/>  </analyzer>  <analyzer type="query">    <tokenizer class="org.wltea.analyzer.factory.IKTokenizerFactory" useSmart="false"/>   <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />    <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>    <filter class="solr.LowerCaseFilterFactory"/>  </analyzer></fieldType><field name="content_IKAnalyzer" type="textMaxWord" indexed="true" stored="true"/><fieldType name="textMaxWord" class="solr.TextField" >  <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/></fieldType>

运行使用

重启服务
根据自己定义的field 的名字使用对应的字段即可

0 0
原创粉丝点击