Elasticsearch 使用中文分词

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 本文演示了如何使用IK Analysis 插件来实现在 Elasticsearch 中的中文分词功能。

本文演示了如何使用IK Analysis 插件来实现在 Elasticsearch 中的中文分词功能。

使用中文分词

在“Spring Boot应用企业级博客系统”课程中(http://coding.imooc.com/class/125.html),所有的博客功能都已经完成了。读者朋友们开始愉快地使用博客来发表博客了。但如果朋友们足够细心的话,发现在输入中文的标签的时候,存在一定的问题。

比如,当我们想将某个博客标记为“大神”时,博客系统却将这个单词粗暴的分成了如图21-2所示的两个词“大”和“神”。显然,这并不符合用户的使用习惯。

默认分词的标签效果

这是 Elasticsearch 语言分析器上的限制,它并不能友好的处理所有语言,特别是中文。这种情况下,我们就需要额外的中文分词器来协助我们了。

本章节,我们将演示使用 IK Analysis 插件来帮助我们实现中文分词。

IK Analysis 插件

IK Analysis 插件(https://github.com/medcl/elasticsearch-analysis-ik/)就是一款专门用于 Elasticsearch 的分词器,可以友好的处理中文。

IK Analysis 插件将 Lucene IK 分析仪(http://code.google.com/p/ik-analyzer/)集成到了 Elasticsearch 中,从而支持自定义分词。

安装 IK Analysis

安装 IK Analysis 非常简单。主要有两种方式。

使用 elasticsearch-plugin

如果 Elasticsearch 是 5.5.1 以后的版本,可以使用 elasticsearch-plugin 来安装,安装方式如下:

./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v5.5.1/elasticsearch-analysis-ik-5.5.1.zip

下载解压到指定目录

另外一种方式是,下载安装包,解压到 Elasticsearch 安装目录的 /plugins/目录下即可。

下图展示了 IK 的安装目录。

K的安装目录

需要注意的是,不管是哪种安装方式,相应的插件,要对应相应的 Elasticsearch 版本,否则可能会安装不成功。
下载地址为 https://github.com/medcl/elasticsearch-analysis-ik/releases。本章节,我们使用 IK Analysis for Elasticsearch 5.5.0 版本。

使用 IK Analysis

要使用 IK Analysis,需要在文档类里面,指定相应的分词器。我们在 EsBlog 的 tags 属性上,添加了searchAnalyzer = "ik_smart", analyzer = "ik_smart"的注解内容就可以了。

public class EsBlog implements Serializable {
 
    ...

    @Field(type = FieldType.text,fielddata = true, searchAnalyzer = "ik_smart", analyzer = "ik_smart") 
    private String tags;  // 标签

下图展示了使用了IK分词的标签效果

使用了IK分词的标签效果

IK Analysis 类型

ik_smart 是 IK Analysis 其中一种分词形式。IK Analysis主要有两种类型的分词形式,分别是 ik_max_word 和 ik_smart。

  • ik_max_word: 会将文本做最细粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国”、“中华人民”、“中华”、“华人”、“人民共和国”、“人民”、“人”、“民”,、“共和国”、“共和”、“和”、“国歌”等,会穷尽各种可能的组合;
  • ik_smart: 会做最粗粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国”、“国歌”。

参考

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
相关文章
|
3月前
|
自然语言处理 API 索引
Elasticsearch Analyzer原理分析并实现中文分词
Elasticsearch Analyzer原理分析并实现中文分词
74 0
|
自然语言处理 数据可视化 网络协议
|
8月前
|
自然语言处理 Java Maven
Elasticsearch系列——安装中文分词插件elasticsearch-analysis-ik
Elasticsearch系列——安装中文分词插件elasticsearch-analysis-ik
|
9月前
|
自然语言处理 API 索引
Elasticsearch Analyzer原理分析并实现中文分词
Elasticsearch Analyzer原理分析并实现中文分词
110 0
|
自然语言处理 数据可视化 算法
ElasticSearch学习笔记(三)-可视化界面Kibana及ES中文分词配置
ElasticSearch学习笔记(三)-可视化界面Kibana及ES中文分词配置
ElasticSearch学习笔记(三)-可视化界面Kibana及ES中文分词配置
|
自然语言处理
elasticsearch安装中文分词扩展elasticsearch-analysis-ik
elasticsearch安装中文分词扩展elasticsearch-analysis-ik
149 0
|
自然语言处理 搜索推荐 索引
Elasticsearch实现中文分词
默认标准分词效果展示; 分词插件elasticsearch-analysis-ik; ik分词效果展示
94 0
Elasticsearch实现中文分词
|
存储 自然语言处理 Ubuntu
Elasticsearch 及 IK 中文分词插件安装
Elasticsearch 及 IK 中文分词插件安装 一、安装Java并配置 JAVA_HOME 环境变量 由于Elasticsearch是使用Java构建的,所以首先需要安装 Java 8 或更高版本 才能运行。 所有Elasticsearch节点和客户机上都应该使用相同的JVM版本。 1. 安装Java 根据不同的系统,从 https://www.oracle.com/techne... 下载相应Java版本进行安装。 CentOS安装Java示例
|
自然语言处理 索引
Elasticsearch中文分词
介绍常见Elasticsearch中文分词器的特点,包括Standard 默认分词器、 IK 中文分词器、Pinyin 分词器、Smart Chinese 分词器、Hanlp 中文分词器。
|
存储 XML JSON
ElasticSearch 如何使用 ik 进行中文分词?
本篇文章则着重分析 ElasticSearch 在全文搜索前如何使用 ik 进行分词,让大家对 ElasticSearch 的全文搜索和 ik 中文分词原理有一个全面且深入的了解
ElasticSearch 如何使用 ik 进行中文分词?

热门文章

最新文章