IK 分词器-介绍

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

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

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

IK 分词器-安装

环境准备:Maven

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

1)设置 JAVA_HOME

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

2)下载 Maven 安装包

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

3)解压 Maven 安装包

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

4)设置软连接

ln -s apache-maven-3.1.1 maven

5)设置 path

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

6)验证 Maven 是否安装成功

mvn -v

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

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

安装 IK 分词器

1)下载 IK

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

2)解压 IK

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

3)编译 jar 包

# 切换到 elasticsearch-analysis-ik-7.4.0目录
cd elasticsearch-analysis-ik-7.4.0/
#打包
mvn package

4) jar 包移动

  • package 执行完毕后会在当前目录下生成 target/releases 目录,将其中的 elasticsearch-analysis-ik-7.4.0.zip 拷贝到 ElasticSearch 目录下的新建的目录 plugins/analysis-ik,并解压:
#切换目录
cd /opt/elasticsearch-7.4.0/plugins/
#新建目录
mkdir analysis-ik
cd analysis-ik
#执行拷贝
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
#执行解压
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 目录:
cp -R /opt/elasticsearch-analysis-ik-7.4.0/config/* /opt/elasticsearch-7.4.0/config

6)重启 ElasticSearch

IK 分词器-使用

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

# ik_max_word:会将文本做最细粒度的拆分。
GET /_analyze
{
"analyzer": "ik_max_word",
"text": "乒乓球明年总冠军"
}
# 分词结果:“乒乓球”、“乒乓”、“球”、“明年”、“总冠军”、“冠军” # ik_smart:会做最粗粒度的拆分
GET /_analyze
{
"analyzer": "ik_smart",
"text": "乒乓球明年总冠军"
}
# 分词结果:“乒乓球”、“明年”、“总冠军”

由结果看出,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. Vector Demo

    /* * vectorDemo.cpp * * Created on: Jul 17, 2014 * Author: lichfeng */ #include<vector> #inclu ...

  2. android jni-dlerror报undefined symbol: JNI_OnLoad

    以下是很简单的一个官方的jni方法,在MainActivity的onCreate中调用 extern "C" JNIEXPORT jstring JNICALL Java_com_ ...

  3. CF1579A Casimir's String Solitaire 题解

    Content 给定一个仅包含 A.B.C 三种字符的字符串 \(s\),有如下两种操作: 删除字符串中的恰好一个 A 和恰好一个 B. 删除字符串中的恰好一个 B 和恰好一个 C. 求是否能够把字符 ...

  4. CF424A Squats 题解

    Content 给定一个长度为 \(n\) 的仅由 x 和 X 组成的字符串,求使得字符串中 x 和 X 的数量相等需要修改的次数,并输出修改后的字符串. 数据范围:\(2\leqslant n\le ...

  5. 通过css实现表格的斜线

    效果图 实现思路 编辑一个svg文件,可以自定义线条颜色和粗细. 将svg文件转为base64格式,作为背景图属性设置. svg转base64的网址:https://www.sojson.com/im ...

  6. ByteBuddy代码生成技术

    简介 如官网所说Byte Buddy 是一个代码生成和操作库,用于在Java应用程序运行时创建和修改Java类,而无需编译器的帮助.除了Java类库附带的代码生成实用程序外,Byte Buddy还允许 ...

  7. 【LeetCode】753. Cracking the Safe 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址: https://leetcode.com/problems/cracking ...

  8. A. Points on Line

    A. Points on Line time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...

  9. Sum of Consecutive Prime Numbers(poj2739)

    Sum of Consecutive Prime Numbers Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 22019 Ac ...

  10. vue 核心加解密工具类 方法

    1 /* base64 加解密 2 */ 3 export let Base64 = require('js-base64').Base64 4 5 /* md5 加解密 6 */ 7 export ...