您的位置:首页 > 其它

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

2017-04-08 22:30 393 查看

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 的名字使用对应的字段即可
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息