ElasticSearch简介(三)——中文分词

很多时候,我们需要在ElasticSearch中启用中文分词,本文这里简单的介绍一下方法。首先安装中文分词插件。这里使用的是 ik,也可以考虑其他插件(比如 smartcn)。

$ ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.2.0/elasti csearch-analysis-ik-7.2.0.zip

上面代码安装的是7.2.0版的插件,与 Elastic 7.2.0 配合使用。

PS:其它插件命令:elasticsearch-plugin help

接着,重新启动 Elastic,就会自动加载这个新安装的插件。

然后,新建一个 Index,指定需要分词的字段。这一步根据数据结构而异,下面的命令只针对本文。基本上,凡是需要搜索的中文字段,都要单独设置一下。

PUT /accounts
{
    "mappings": {
        "person": {
            "properties": {
                "user": {
                    "type": "text",
                    "analyzer": "ik_max_word",
                    "search_analyzer": "ik_max_word"
                },
                "title": {
                    "type": "text",
                    "analyzer": "ik_max_word",
                    "search_analyzer": "ik_max_word"
                },
                "desc": {
                    "type": "text",
                    "analyzer": "ik_max_word",
                    "search_analyzer": "ik_max_word"
                }
            }
        }
    }
}

上面代码中,首先新建一个名称为accounts的 Index,里面有一个名称为person的 Type。person有三个字段。

  • user
  • title
  • desc

这三个字段都是中文,而且类型都是文本(text),所以需要指定中文分词器,不能使用默认的英文分词器。

Elastic 的分词器称为 analyzer。我们对每个字段指定分词器。

"user": {
    "type": "text",
    "analyzer": "ik_max_word",
    "search_analyzer": "ik_max_word"
}

上面代码中,analyzer是字段文本的分词器,search_analyzer是搜索词的分词器。ik_max_word分词器是插件ik提供的,可以对文本进行最大数量的分词。

原文地址:https://www.cnblogs.com/TianFang/p/11330241.html

时间: 2024-08-11 12:12:52

ElasticSearch简介(三)——中文分词的相关文章

如何在Elasticsearch中安装中文分词器(IK)和拼音分词器?

声明:我使用的Elasticsearch的版本是5.4.0,安装分词器前请先安装maven 一:安装maven https://github.com/apache/maven 说明: 安装maven需要java1.7+ 编译安装分词器时,可能会报错,报错信息如下: [ERROR] COMPILATION ERROR : [INFO] -------------------------------------------------------------[ERROR] No compiler i

Elasticsearch安装IK中文分词插件

一,从github上下载最新的Ik分词源码到本地 git clone https://github.com/medcl/elasticsearch-analysis-ik clone到本地后,将elasticsearch-analysis-ik目录中的 config/ik/ 整个目录拷贝到Elasticsearch安装目录的config目录下. 二,将elasticsearch-analysis-ik目录下的config中的elasticsearch.yml文件覆盖Elasticsearch安装

elasticsearch入门 (三 ik 分词器安装)

ik git 地址 https://github.com/medcl/elasticsearch-analysis-ik readme 包含各个版本ik对应的 es 版本 下载对应的ikzip包 命令如下 https://github.com/medcl/elasticsearch-analysis-ik/archive/v1.5.0.zip 解压后 执行maven打包命令(默认系统已经安装maven) mvn package 编译成功后进入target下有一个编译好的elasticsearch

ElasticSearch使用IK中文分词---安装步骤记录

提示:必须保证之前的ES中不存在index, 否则ES集群无法启动, 会提示red! 1.下载IK字典配置文件 http://download.csdn.net/detail/xxx0624/8464751 然后解压该文件(可以得到一个ik文件夹)并把它放到ES的config文件夹下. 2.下载 ik.jar http://download.csdn.net/detail/xxx0624/8464743 下载后直接放到lib文件夹中 3.修改elasticsearch.yml(config文件夹

elasticsearch中文分词(mmseg)——手动添加词典

elasticsearch本身的中文分词插件效果都不理想,手动添加词典可以在一定程度上进行弥补. 经过多次实验发现,mmseg的分词机制采用正向最长匹配算法,例如,针对"小时代"这个单词,其自带的词典中没有包含该词,故当用户搜索小时代时,检索不到任何结果. 在咸鱼老婆的虚心指导下,我终于找到了解决办法. 手动添加该词到mmseg的词库中,有两种方法: 1.将该词加入到自带的某个词典中(非停顿词词典),如words-my.dic. 2.新建一个自定义词典,将其放入默认词库文件夹下,注意编

Ubuntu16.04下安装elasticsearch+kibana实现php客户端的中文分词

1.下载安装elasticsearch和kibana wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.4.2.deb dpkg -i elasticsearch-5.4.2.deb wget https://artifacts.elastic.co/downloads/kibana/kibana-5.4.2-amd64.deb dpkg -i kibana-5.4.2-amd64.deb 2.安装

NLPIR(北理工张华平版中文分词系统)的SDK(C++)调用方法

一.本文内容简介 二.具体内容 1. 中文分词的基本概念 2.关于NLPIR(北理工张华平版中文分词系统)的基本情况 3.具体SDK模块(C++)的组装方式 ①准备内容: ②开始组装 三.注意事项 一.本文内容简介 关于中文分词的基本概念 关于NLPIR(北理工张华平版中文分词系统)的基本情况 具体SDK模块(C++版)的组装方法 二.具体内容 1. 中文分词的基本概念 中文分词是自然语言处理的一个分支,自然语言即人们在日常生活中使用的语言,包含书面语,口语,例如报纸上的一篇通讯,博客里面的一篇

R语言中文分词jiebaR

简介 "结巴"中文分词的R语言版本,支持最大概率法(Maximum Probability), 隐式马尔科夫模型(Hidden Markov Model), 索引模型(QuerySegment), 混合模型(MixSegment), 共四种分词模式, 同时有词性标注,关键词提取,文本Simhash相似度比较等功能.项目使用了Rcpp和CppJieba进行开发. 特性 支持 Windows , Linux操作系统(Mac 暂未测试). 通过Rcpp Modules实现同时加载多个分词系统

ElasticSearch第三步-中文分词

elasticsearch官方只提供smartcn这个中文分词插件,效果不是很好,好在国内有medcl大神(国内最早研究es的人之一)写的两个中文分词插件,一个是ik的,一个是mmseg的,下面分别介绍ik的用法, 当我们创建一个index(库db_news)时,easticsearch默认提供的分词器db_news,分词结果会把每个汉字分开,而不是我们想要的根据关键词来分词.例如: 代码如下: GET /db_news/_analyze?analyzer=standard { 我爱北京天安门