IK 分词器-介绍

现有问题:ES 默认对中文分词并不友好,实际上是把中文进行了每个字的分词。

  1. # 查看ES对中文的默认分词
  2. GET /_analyze
  3. {
  4. "analyzer": "standard",
  5. "text": "乒乓球明年总冠军"
  6. }
  7. # 分词结果,是将“乒乓球明年总冠军”拆分成了“乒”、“乓”、“球”、“明”、“年”、“总”、“冠”、“军”

对此,通常我们需要为 ES 加入友好的中文分词器,如 IKAnalyzer

IK 分词器-安装

环境准备:Maven

ElasticSearch 要使用 IK,就要先构建 IK 的 jar 包,这里要用到 Maven 包管理工具,而 Maven 需要 Java 环境,而 ElasticSearch 内置了 JDK, 所以可以将 JAVA_HOME 设置为ElasticSearch 内置的 JDK 。

1)设置 JAVA_HOME

  1. vi /etc/profile
  2. # 在profile文件末尾添加
  3. #java environment
  4. export JAVA_HOME=/opt/elasticsearch-7.4.0/jdk
  5. export PATH=$PATH:${JAVA_HOME}/bin
  6. # 保存退出后,重新加载profile
  7. source /etc/profile

2)下载 Maven 安装包

  1. wget https://mirrors.aliyun.com/apache/maven/maven-3/3.1.1/binaries/apache-maven-3.1.1-bin.tar.gz

3)解压 Maven 安装包

  1. tar xzf apache-maven-3.1.1-bin.tar.gz

4)设置软连接

  1. ln -s apache-maven-3.1.1 maven

5)设置 path

  • 打开文件:
  1. vi /etc/profile.d/maven.sh
  • 将下面的内容复制到文件,保存:
  1. export MAVEN_HOME=/opt/maven
  2. export PATH=${MAVEN_HOME}/bin:${PATH}
  • 设置好 Maven 的路径之后,需要运行下面的命令使其生效:
  1. source /etc/profile.d/maven.sh

6)验证 Maven 是否安装成功

  1. mvn -v

7)将 Maven 镜像下载换成阿里云

  1. vi /opt/apache-maven-3.1.1/conf/setting.xml
  1. <mirror>
  2. <id>alimaven</id>
  3. <name>aliyun maven</name>
  4. <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
  5. <mirrorOf>central</mirrorOf>
  6. </mirror>

安装 IK 分词器

1)下载 IK

  1. wget https://github.com/medcl/elasticsearch-analysis-ik/archive/v7.4.0.zip

2)解压 IK

  1. # 如果本机环境没有安装 unzip
  2. yum install zip
  3. yum install unzip
  4. # 解压 IK
  5. unzip v7.4.0.zip

3)编译 jar 包

  1. # 切换到 elasticsearch-analysis-ik-7.4.0目录
  2. cd elasticsearch-analysis-ik-7.4.0/
  3. #打包
  4. mvn package

4) jar 包移动

  • package 执行完毕后会在当前目录下生成 target/releases 目录,将其中的 elasticsearch-analysis-ik-7.4.0.zip 拷贝到 ElasticSearch 目录下的新建的目录 plugins/analysis-ik,并解压:
  1. #切换目录
  2. cd /opt/elasticsearch-7.4.0/plugins/
  3. #新建目录
  4. mkdir analysis-ik
  5. cd analysis-ik
  6. #执行拷贝
  7. cp -R /opt/elasticsearch-analysis-ik-7.4.0/target/releases/elasticsearch-analysis-ik-7.4.0.zip /opt/elasticsearch-7.4.0/plugins/analysis-ik
  8. #执行解压
  9. unzip /opt/elasticsearch-7.4.0/plugins/analysis-ik/elasticsearch-analysis-ik-7.4.0.zip

5)拷贝辞典

  • 将 elasticsearch-analysis-ik-7.4.0目录下的 config 目录中的所有文件拷贝到 elasticsearch 的 config 目录:
  1. cp -R /opt/elasticsearch-analysis-ik-7.4.0/config/* /opt/elasticsearch-7.4.0/config

6)重启 ElasticSearch

IK 分词器-使用

IK分词器有两种分词模式:ik_max_wordik_smart 模式

  1. # ik_max_word:会将文本做最细粒度的拆分。
  2. GET /_analyze
  3. {
  4. "analyzer": "ik_max_word",
  5. "text": "乒乓球明年总冠军"
  6. }
  7. # 分词结果:“乒乓球”、“乒乓”、“球”、“明年”、“总冠军”、“冠军”
  8. # ik_smart:会做最粗粒度的拆分
  9. GET /_analyze
  10. {
  11. "analyzer": "ik_smart",
  12. "text": "乒乓球明年总冠军"
  13. }
  14. # 分词结果:“乒乓球”、“明年”、“总冠军”

由结果看出,IK 的分词效果达到我们对中文分词的要求。

IK 分词器的更多相关文章

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

    在这里一下讲解着三个的安装和配置, 是因为solr需要使用tomcat和IK分词器, 这里会通过图文教程的形式来详解它们的安装和使用.注: 本文属于原创文章, 如若转载,请注明出处, 谢谢.关于设置I ...

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

    转载请注明出处! IK分词器如果配置成 <fieldType name="text_ik" class="solr.TextField"> < ...

  3. Elasticsearch5.1.1+ik分词器+HEAD插件安装小记

    一.安装elasticsearch 1.首先需要安装好java,并配置好环境变量,详细教程请看 http://tecadmin.net/install-java-8-on-centos-rhel-an ...

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

    为了更好的排版, 所以将IK分词器的安装重启了一篇博文,  大家可以接上solr的安装一同查看.[Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例一: http://ww ...

  5. elasticsearch 之IK分词器安装

    IK分词器地址:https://github.com/medcl/elasticsearch-analysis-ik 安装好ES之后就可以安装分词器插件了 记住选择ES对应的版本 对应的有版本选择下载 ...

  6. Solr和IK分词器的整合

    IK分词器相对于mmseg4J来说词典内容更加丰富,但是没有mmseg4J灵活,后者可以自定义自己的词语库.IK分词器的配置过程和mmseg4J一样简单,其过程如下: 1.引入IKAnalyzer.j ...

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

    配置Ik分词器 一 效果图 二 实现此功能需要添加分词器,在这里使用比较主流的IK分词器. 1 没有配置IK分词器,用solr自带的text分词它会把一句话分成单个的字. 2 配置IK分词器,的话它会 ...

  8. 如何开发自己的搜索帝国之安装ik分词器

     Elasticsearch默认提供的分词器,会把每个汉字分开,而不是我们想要的根据关键词来分词,我是中国人 不能简单的分成一个个字,我们更希望 “中国人”,“中国”,“我”这样的分词,这样我们就需要 ...

  9. elasticsearch安装ik分词器

    一.概要: 1.es默认的分词器对中文支持不好,会分割成一个个的汉字.ik分词器对中文的支持要好一些,主要由两种模式:ik_smart和ik_max_word 2.环境 操作系统:centos es版 ...

  10. Lucene 6.0下使用IK分词器

    Lucene 6.0使用IK分词器需要修改修改IKAnalyzer和IKTokenizer. 使用时先新建一个MyIKTokenizer类,一个MyIkAnalyzer类: MyIKTokenizer ...

随机推荐

  1. IT过来人的10点经验谈

    1 入行要趁早,正常是22岁本科或25岁硕士毕业入行.如果是零基础经培训班加持的,尽量在28岁前入行,30岁以后再想要入行IT的,千万慎重. 2 IT行业确实能挣大钱,而且能为学历一般学校一般家庭背景 ...

  2. 模板方法模式(Template Method Pattern)——复杂流程步骤的设计

    模式概述 在现实生活中,很多事情都包含几个实现步骤,例如请客吃饭,无论吃什么,一般都包含点单.吃东西.买单等几个步骤,通常情况下这几个步骤的次序是:点单 --> 吃东西 --> 买单. 在 ...

  3. 远程调用RPC

    一.简介 RPC,就是Remote Procedure Call的简称呀,翻译成中文就是远程过程调用. 本地调用,就好比你现在在家里,你要想洗碗,那你直接把碗放进洗碗机,打开洗碗机开关就可以洗了.这就 ...

  4. Jenkins环境变量

    目录 一.环境变量 二.自定义环境变量 三.自定义全局变量 四.常用变量定义 五.常用环境变量 一.环境变量 环境变量可以被看作是pipeline与Jenkins交互的媒介.比如,可以在pipelin ...

  5. Markdown 语法粗学

    Markdown 语法粗学 Typora下载 Typora官网 下拉点击右上角 选择下载即可 里面选择自己想要的系统下载即可 如果下载缓慢,推荐使用各自的下载工具或者使用软件管家等 亲测迅雷速度尚可 ...

  6. CF1265B Beautiful Numbers 题解

    Content 给定一个 \(1\sim n\) 的排列,请求出对于 \(1\leqslant m\leqslant n\),是否存在一个区间满足这个区间是一个 \(1\sim m\) 的排列. 数据 ...

  7. CF667A Pouring Rain 题解

    Content 一个水桶直径为 \(d\) 厘米,初始时水面高度为 \(h\) 厘米.你每秒钟喝 \(v\) 毫升水,而由于下雨,水桶里面的水在不喝水的时候每秒会上升 \(e\) 厘米.求你最少需要多 ...

  8. Python3 shevel模块,更高级的json序列化数据类型模块(比pickle更高级)

    直接将数据类型以字典的格式 存到文件中去. 直接.get读取出来,

  9. TFTP协议介绍-python实现tftp客户端

    1. TFTP协议介绍 TFTP(Trivial File Transfer Protocol,简单文件传输协议) 是TCP/IP协议族中的一个用来在客户端与服务器之间进行简单文件传输的协议 特点: ...

  10. RuoYi项目整合Mybatis-Plus 框架

    RuoYi框架默认使用的是Mybatis框架 但是有的习惯使用MP框架,这就很不方便, 不过可以简单进行整合 引入依赖 <dependency> <groupId>com.ba ...