IK 分词器
IK 分词器-介绍
现有问题:ES 默认对中文分词并不友好,实际上是把中文进行了每个字的分词。
# 查看ES对中文的默认分词
GET /_analyze
{
"analyzer": "standard",
"text": "乒乓球明年总冠军"
}
# 分词结果,是将“乒乓球明年总冠军”拆分成了“乒”、“乓”、“球”、“明”、“年”、“总”、“冠”、“军”
对此,通常我们需要为 ES 加入友好的中文分词器,如 IKAnalyzer 。
IKAnalyzer 是一个开源的、基于 Java 语言开发的、轻量级的中文分词工具包。
是一个基于 Maven 构建的项目。
具有 60 万字/秒的高速处理能力。
支持用户词典扩展定义。
下载地址:https://github.com/medcl/elasticsearch-analysis-ik/archive/v7.4.0.zip
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_word 和 ik_smart 模式
# ik_max_word:会将文本做最细粒度的拆分。
GET /_analyze
{
"analyzer": "ik_max_word",
"text": "乒乓球明年总冠军"
}
# 分词结果:“乒乓球”、“乒乓”、“球”、“明年”、“总冠军”、“冠军”
# ik_smart:会做最粗粒度的拆分
GET /_analyze
{
"analyzer": "ik_smart",
"text": "乒乓球明年总冠军"
}
# 分词结果:“乒乓球”、“明年”、“总冠军”
由结果看出,IK 的分词效果达到我们对中文分词的要求。
IK 分词器的更多相关文章
- [Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例一.
在这里一下讲解着三个的安装和配置, 是因为solr需要使用tomcat和IK分词器, 这里会通过图文教程的形式来详解它们的安装和使用.注: 本文属于原创文章, 如若转载,请注明出处, 谢谢.关于设置I ...
- IK分词器 整合solr4.7 含同义词、切分词、停止词
转载请注明出处! IK分词器如果配置成 <fieldType name="text_ik" class="solr.TextField"> < ...
- Elasticsearch5.1.1+ik分词器+HEAD插件安装小记
一.安装elasticsearch 1.首先需要安装好java,并配置好环境变量,详细教程请看 http://tecadmin.net/install-java-8-on-centos-rhel-an ...
- [Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例二.
为了更好的排版, 所以将IK分词器的安装重启了一篇博文, 大家可以接上solr的安装一同查看.[Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例一: http://ww ...
- elasticsearch 之IK分词器安装
IK分词器地址:https://github.com/medcl/elasticsearch-analysis-ik 安装好ES之后就可以安装分词器插件了 记住选择ES对应的版本 对应的有版本选择下载 ...
- Solr和IK分词器的整合
IK分词器相对于mmseg4J来说词典内容更加丰富,但是没有mmseg4J灵活,后者可以自定义自己的词语库.IK分词器的配置过程和mmseg4J一样简单,其过程如下: 1.引入IKAnalyzer.j ...
- Solr(四)Solr实现简单的类似百度搜索高亮功能-1.配置Ik分词器
配置Ik分词器 一 效果图 二 实现此功能需要添加分词器,在这里使用比较主流的IK分词器. 1 没有配置IK分词器,用solr自带的text分词它会把一句话分成单个的字. 2 配置IK分词器,的话它会 ...
- 如何开发自己的搜索帝国之安装ik分词器
Elasticsearch默认提供的分词器,会把每个汉字分开,而不是我们想要的根据关键词来分词,我是中国人 不能简单的分成一个个字,我们更希望 “中国人”,“中国”,“我”这样的分词,这样我们就需要 ...
- elasticsearch安装ik分词器
一.概要: 1.es默认的分词器对中文支持不好,会分割成一个个的汉字.ik分词器对中文的支持要好一些,主要由两种模式:ik_smart和ik_max_word 2.环境 操作系统:centos es版 ...
- Lucene 6.0下使用IK分词器
Lucene 6.0使用IK分词器需要修改修改IKAnalyzer和IKTokenizer. 使用时先新建一个MyIKTokenizer类,一个MyIkAnalyzer类: MyIKTokenizer ...
随机推荐
- Mybatis中对象关系映射
在实际开发中,实体类之间有一对一.一对多.多对多的关系,所以需要正确配置它们对应关系,Mybatis通过配置文件能够从数据库中获取列数据后自动封装成对象. 如:一个订单Orders类对应一个用户Use ...
- 粒子群优化算法—Matlab
PSO算法 clc; clear ; close ; %% Problem Definition CostFunction = @(x) sphere(x); % Cost Function nVar ...
- [BUUCTF]PWN17——[HarekazeCTF2019]baby_rop
[BUUCTF]PWN17--[HarekazeCTF2019]baby_rop 附件 步骤: 例行检查,64位,开启了NX保护 试运行一下程序,看这个情况,当我们输入太长字符串的时候会报错 64位i ...
- LR常见报错
转:https://blog.csdn.net/yoyo_sunny/article/details/43406503
- CF675A Infinite Sequence 题解
Content 给定三个整数 \(a,b,c\),问你 \(b\) 是否在以 \(a\) 为首项,公差为 \(c\) 的等差数列中. 数据范围:\(-10^9\leqslant a,b,c\leqsl ...
- MySQL、Oracle元数据抽取分析
最近接到个任务是抽取mysql和Oracle的元数据,大致就是在库里把库.schema.表.字段.分区.索引.主键等信息抽取出来,然后导成excel. 因为刚开始接触元数据,对这个并不了解,就想借助一 ...
- lvm 扩容
总体思路: 逻辑卷要扩容,先扩容对应卷组, 扩容卷组的方式: 添加新的物理卷(磁盘已有分区,扩容后新建分区:或者新加了一块硬盘创建了新的物理卷),vgextend myvg /dev/vdb 扩容,/ ...
- thinkphp 5 在页面输出当前时间
我遇到的使用场景是<input>默认为当前时间,代码如下: <input name="starttime" id="starttime" ty ...
- 【LeetCode】331. Verify Preorder Serialization of a Binary Tree 解题报告(Python)
[LeetCode]331. Verify Preorder Serialization of a Binary Tree 解题报告(Python) 标签: LeetCode 题目地址:https:/ ...
- 1119 - Pimp My Ride
1119 - Pimp My Ride PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB To ...