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 的名字使用对应的字段即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值