有的时候,用户搜索的关键字,可能是一句话,不是很规范。所以在 Solr 中查询出的时候,就需要将用户输入的关键字进行分词。
目前有很多优秀的中文分词组件。本篇只以 IKAnalyzer 分词为例,讲解如何在 solr 中及集成中文分词,使用 IKAnalyzer的原因 IK 比其他中文分词维护的勤快,和 Solr 集成也相对容易。具体就不多介绍,这里直接solr 集成 IK 的方法。
1. 首先,下载IKAnalyzer ,下载
注意:以前老的IK 不支持Solr 5.3的版本 ,请注意下载最新的。
2. 将ik的相关文件 拷贝到 webapps\solr\WEB-INF\lib 目录下
3. 在 solr_home\mycore1\conf\schema.xml 增加如下配置
<!-- 我添加的IK分词 --> <fieldType name="text_ik" class="solr.TextField"> <analyzer type="index" isMaxWordLength="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/> <analyzer type="query" isMaxWordLength="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/> </fieldType>
同时,把需要分词的字段,设置为text_ik,
<field name="id" type="int" indexed="true" stored="true" required="true" multiValued="false" /> <field name="name" type="text_ik" indexed="true" stored="true" required="true" multiValued="false" /> <field name="title" type="text_ik" indexed="true" stored="true" required="true" multiValued="false" /> <field name="category" type="int" indexed="true" stored="true" required="true" multiValued="false" /> <field name="content" type="text_ik" indexed="true" stored="true" required="true" multiValued="false" /> <field name="price" type="double" indexed="true" stored="true" required="true" multiValued="false" /> <field name="color" type="string" indexed="true" stored="true" required="true" multiValued="false" /> <field name="orderBy" type="int" indexed="true" stored="true" required="true" multiValued="false" /> <field name="updatetime" type="date" indexed="true" stored="true" required="true" multiValued="false" />
注意:如果之前已经创建了索引,需要将之前的索引删掉,重新创建分词后的索引。
5. 在admin后台, analysis 下查看分词效果
1. 中文分词效果
2. 索引查询效果
6. 配置IKAnalyzer分词器的扩展词典,停止词词典
1. 将 文件夹下的IKAnalyzer.cfg.xml , ext.dic和stopword.dic 三个文件 复制到/webapps/solr/WEB-INF/classes 目录下,并修改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>
2. 在ext.dic 里增加自己的扩展词典,例如,婴儿奶粉3段
注意: 记得将stopword.dic,ext.dic的编码方式为UTF-8 无BOM的编码方式。
相关推荐
对于ES IK分词插件在中文检索中非常常用,本人也使用了挺...本文包括前言、IK分词介绍、分词效果对比、自定义词典使用、索引设置和字段设置(Python 创建索引并导入数据)、查询测试(Python 查询)、结论等七个部分。
1、lucene-core-3.6.0.jar 2、IKAnalyzer2012.jar(主jar包) 3、IKAnalyzer.cfg.xml(分词器扩展配置文件) 4、stopword.dic(停止词典) 5、IkSegmentation.java(样例类)
IKAnalyzer继承Lucene的Analyzer抽象类,使用IKAnalyzer和Lucene自带的分析器方法一样,将Analyzer测试代码改为IKAnalyzer测试中文分词效果。 如果使用中文分词器ik-analyzer,就需要在索引和搜索程序中使用一致的...
solr与IK中文分词器的安装包及配置,内有文档,介绍的很详细
IK-Analyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包,也就是可以将一串中文字符分割成一个个的词组或者字词 文件中包含分词工具 ikanalyzer-2012_u6.jar 中文分词配置 IKAnalyzer.cfg..xml
IK中文分词器 里面含有配置文件和jar包等全面的文件。
luke-all是查询lucense生成索引文件的工具,加入IK分词器,更好的支持中文查询
Ikik-analyzer-solr-6.3.0 中文分词器6.3.0版本和相关配置文件
搜索引擎elasticsearch 5.5.3,配置了ik中文分词,直接bin里的elasticsearch.bat运行即可
资料为solr6.x中文分词需要的IK分词工具,包括针对solr6.x修改过源代码的IK工具的jar包、IK配置文件、一个中文示例的词库、一份详细的使用说明文档。
NULL 博文链接:https://jsxzzliang.iteye.com/blog/852460
IK中文分词器,solr配置用jar包,适用于solr5版本,欢迎下载。。。
IK中文分词器在Elasticsearch上的使用。原生IK中文分词是从文件系统中读取词典,es-ik本身可扩展成从不同的源读取词典。目前提供从sqlite3数据库中读取。es-ik-plugin-sqlite3使用方法: 1. 在elasticsearch.yml中...
IKAnalyzer中文分词器本身已经不支持最新的solr 5,集成到solr中分词会报错,这里将解决了solr 5支持问题的最新IK包共享出来,希望能帮到各位! 附上IK在schema.xml中的配置: <fieldType name="text_ik" class=...
luke-all是查询lucense生成索引文件的工具,加入IK分词器,更好的支持中文查询
solr6.0以上版本可以配置的IKAnalyzer分词器
solr5.5.4对应的中文分词器下载,如果solr为tomcat方式部署,下载后解压该压缩文件,将下面的jar文件复制到solr项目的lib目录下,将里面的配置其他配置文件复制到classes目录下即可。
solr中文分词jar包ik-analyzer 含class配置 ik-analyzer-7.5.0
IKAnalyzer中文分词器 jar包 + 使用文档 + 配置文件 + doc
IKAnalyzer提供了动态自定义词库的方法,使得开发者可以根据不同的应用场景和需求,灵活地配置分词器的词库。 动态自定义词库的方法主要通过自定义Configuration类来实现。Configuration类是IKAnalyzer的核心配置类...