13.solr学习速成之IK分词器

IKAnalyzer简介

IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。

IKAnalyzer特性

a. 算法采用“正向迭代最细粒度切分算法”,支持细粒度和最大词长两种分词方式,速度最大支持80W字/秒(1600KB/秒)。

b. 支持多子处理器分析模式:中文、数字、字母,并兼容日文、韩文。

c. 较小的内存占用,优化词库占有空间,用户可自定义扩展词库。

d. 扩展lucene的扩展实现,采用歧义分析算法优化查询关键字的搜索排列组合,提高lucene检索命中率

IK分词算法理解

根据作者官方说法IK分词器采用“正向迭代最细粒度切分算法”,分析它的源代码,可以看到分词工具类IKQueryParser起至关重要的作用,它对搜索关键词采用从最大词到最小词层层迭代检索方式切分,比如搜索词:“中华人民共和国成立了”,首先到词库中检索该搜索词中最大分割词,即分割为:“中华人民共和国”和“成立了”,然后对“中华人民共和国”切分为“中华人民”和“人民共和国”,以此类推。最后,“中华人民共和国成立了”切分为:“中华人民 | 中华 | 华人 | 人民 | 人民共和国 | 共和国 | 共和 | 成立 | 立了”,当然,该切分方式为默认的细粒度切分,若按最大词长切分,结果为:“中华人民共和国 | 成立 | 立了”。

其它分词器

目前的分词器有:mmseg4j、paoding、ik-analyzer、imdict、Ansj;目前任在持续更新的有mmseg4j、ik-analyzer和Ansj,这三类分词器都有java的实现,ansj是一个ictclas的java实现,ictclas是中科院计算技术研究所的一个中文分词器,目前用的比较广泛的还是ik-analyzer分词器和mmseg4j 分词器,我们对比下:

mmseg4j :自带sogou词库,支持名为 wordsxxx.dic, utf8文本格式的用户自定义词库,一行一词。不支持自动检测。

ik :支持api级的用户词库加载,和配置级的词库文件指定,无 BOM 的 UTF-8 编码,rn 分割。不支持自动检测。

mmseg4j : 在complex基础上实现了最多分词(max-word),但是还不成熟,还有很多需要改进的地方。

ik :针对Lucene全文检索优化的查询分析器IKQueryParser

IK与solr的集成

1.添加jar

将ik-analyzer-solr5-5.x.jar 放到apache-tomcat-8.5.15/webapps/solr/WEB-INF/lib

2.配置test核下面的schema.xml

<fieldType name="text_ik" class="solr.TextField">
        <analyzer type="index">
            <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false"/>
        </analyzer>
        <analyzer type="query">
            <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true"/>
        </analyzer>
    </fieldType>

有了这个fieldType,我们顺便改一个text_ik的field

<!--
   <field name="title" type="text_general" indexed="true" stored="true" multiValued="true"/>
   -->
   <field name="title" type="text_ik" indexed="true" stored="true" multiValued="true"/>

3.添加扩展词库

在apache-tomcat-8.5.15/webapps/solr/WEB-INF下创建classes文件夹,添加ext.dic,IKAnalyzer.cfg.xml,stopword.dic文件

也可以添加多个词库文件.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>

重启tomcat

时间: 2024-10-21 14:39:59

13.solr学习速成之IK分词器的相关文章

Solr(四)Solr实现简单的类似百度搜索高亮功能-1.配置Ik分词器

配置Ik分词器 一 效果图 二 实现此功能需要添加分词器,在这里使用比较主流的IK分词器. 1 没有配置IK分词器,用solr自带的text分词它会把一句话分成单个的字. 2 配置IK分词器,的话它会把句子分成词组 三 下载配置分词器 1 下载分词器IK 分词器下载地址: http://download.csdn.net/detail/u013292160/9926148 2 解压下载的文件 3 将ik-analyzer-solr5-5.x.jar这个jar包放入solr项目下的WEB-INF\

搜索技术:solr+IK分词器配置

一.搭建solr服务器1.Apache官网下载solr,本次使用4.9.1版本2.解压solr,找到example,将webapps中的war包复制到tomcat的webapps下3.运行tomcat,关闭tomcat,得到解压后的solr文件夹,删除war包4.将example\lib\ext\*.jar复制到解压后的solr\WEB-INF\lib中5.将example文件下solr文件夹的地址放到步骤6的/put/your/solr/home/here位置6.修改web.xml <env-

[Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例一.

在这里一下讲解着三个的安装和配置, 是因为solr需要使用tomcat和IK分词器, 这里会通过图文教程的形式来详解它们的安装和使用.注: 本文属于原创文章, 如若转载,请注明出处, 谢谢.关于设置IK分词器的文章 IK分词器: http://www.cnblogs.com/wang-meng/p/5814798.html 1, 解压tar文件首先我们在根目录下建立一个solr目录(使用命令: mkdir /solr):  然后查看目录是否生成成功:  解压solr/tomcat/IK 到sol

[Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例二.

为了更好的排版, 所以将IK分词器的安装重启了一篇博文,  大家可以接上solr的安装一同查看.[Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例一: http://www.cnblogs.com/wang-meng/p/5814798.html 8, 打开浏览器查看solr可视化界面 到了这里solr就配置好了, 可是我们的IK 分词器还没有配置呢, 如果不配IK分词器的话 它是怎样分词的呢? 我们就来先看一下:  每个字都分成了一个词, 这当然不是我们想要的结果

如何在solr中添加ik分词器

分词技术是搜索技术里面的一块基石.很多人用过,如果你只是为了简单快速地搭一个搜索引擎,你确实不用了解太深.但一旦涉及效果问题,分词器上就可以做很多文章.例如, 在我们实际用作电商领域的搜索的工作中,类目预判的实现就极须依赖分词,至少需要做到可以对分词器动态加规则.再一个简单的例子,如果你的优化方法就是对不同的词分权重,提高一些重点词的权重的话,你就需要依赖并理解分词器. 下面将介绍如何在solr中为core:simple的title添加分词,承接上一篇博文(http://simplelife.b

Solr和IK分词器的整合

IK分词器相对于mmseg4J来说词典内容更加丰富,但是没有mmseg4J灵活,后者可以自定义自己的词语库.IK分词器的配置过程和mmseg4J一样简单,其过程如下: 1.引入IKAnalyzer.jar包到solr应用程序的WEB-INF/lib/目录下 2.打开solr的home/conf目录下的schema文件,在<types></types>内加入如下代码: <fieldType name="text_zh" class="solr.Te

solr添加中文IK分词器,以及配置自定义词库

Solr是一个基于Lucene的Java搜索引擎服务器.Solr 提供了层面搜索.命中醒目显示并且支持多种输出格式(包括 XML/XSLT 和 JSON 格式).它易于安装和配置,而且附带了一个基于HTTP 的管理界面.Solr已经在众多大型的网站中使用,较为成熟和稳定.Solr 包装并扩展了Lucene,所以Solr的基本上沿用了Lucene的相关术语.更重要的是,Solr 创建的索引与 Lucene搜索引擎库完全兼容.通过对Solr 进行适当的配置,某些情况下可能需要进行编码,Solr 可以

IK分词器 整合solr4.7 含同义词、切分词、停止词

IK分词器如果配置成 <fieldType name="text_ik" class="solr.TextField"> <analyzer type="index" isMaxWordLength="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/> <analyzer type="query" is

solr5.5.4整合IK分词器

1.下载IK分词器支持5.5.4的     http://download.csdn.net/detail/wang_keng/9535491 2.需要把分析器的jar包添加到solr工程中的tomcat的WEB-INF/lib下   cp IKAnalyzer2012FF_u2.jar /usr/local/solr/tomcat/webapps/solr/WEB-INF/lib/ 3.需要把IKAnalyzer需要的扩展词典及停用词词典.配置文件复制到solr工程的WEB-INF/class