ES分词插件使用
来源:互联网 发布:足彩数据分析软件 编辑:程序博客网 时间:2024/06/05 03:08
Elasticsearch中,内置了很多分词器(analyzers),例如standard (标准分词器)、english (英文分词)和chinese (中文分词)。其中standard 就是无脑的一个一个词(汉字)切分,所以适用范围广,但是精准度低;english 对英文更加智能,可以识别单数负数,大小写,过滤停用词(例如“the”这个词)等;chinese 虽然是针对中文的分词器,但是效果很差,因此一般有中文分词需求时都会安装第三方分词插件,例如ik、jieba、ansj这些。
假设现在我们要索引进ES的文档中包含 我是中国人 这句话,以ES自带的中文分词器为例,通过以下请求:http://localhost:9200/index/_analyze?analyzer=standard&pretty=true&text=我是中国人
我们会得到这样的结果
正常情况下,这不是我们想要的结果,比如我们更希望得到 “中国人”,“中国”,“我”这样的分词,这样我们就需要安装额外的中文分词插件。
插件的安装步骤很简单,直接从GitHub上下载压缩包后(也可以自己通过源码编译得到),解压到your-es-root/plugins/目录下,这个目录专门用来存放ES相关的插件。
以IK分词插件为例,我们打开github主页,直接下载压缩包(Linux可通过wget指令):
然后将压缩包解压到plugins目录下
最后我们只要重启ES即可生效。接下来验证一下插件的效果:
(1)创建一个新的索引:
curl -XPUT http://localhost:9200/index
(2)在刚才的索引中创建一个映射规则,红色部分即指定该字段使用的分词器,其中IK定义两种分词模式:
· ik_max_word:会将文本做最细粒度的拆分,例如「中华人民共和国国歌」会被拆分为「中华人民共和国、中华人民、中华、华人、人民共和国、人民、人、民、共和国、共和、和、国国、国歌」,会穷尽各种可能的组合;
· ik_smart:会将文本做最粗粒度的拆分,例如「中华人民共和国国歌」会被拆分为「中华人民共和国、国歌」;
curl -XPOST http://localhost:9200/index/fulltext/_mapping -d'
{
"properties": {
"content": {
"type": "text",
"analyzer": "ik_max_word",
"search_analyzer": "ik_max_word"
}
}
}'
(3)对刚才的语句进行分词结果展示
curl -XPOST "http://localhost:9200/index/_analyze?analyzer=ik_max_word&pretty=true&text=我是中国人"
可以看到,分词结果比较符合语义,并且还去除了停用词“是”。
因为在中文分词中词典很重要,可以定制一些与具体语言场景相关的词组,在IK中我们可以通过修改IKAnalyzer.cfg.xml配置文件进行词典配置,IKAnalyzer.cfg.xml一般存放在{conf}/analysis-ik/config/IKAnalyzer.cfg.xml
o或者{plugins}/elasticsearch-analysis-ik-*/config/IKAnalyzer.cfg.xml
目录下
- ES分词插件使用
- es 分词器使用简介
- ES中如何使用逗号来分词
- ES中使用IK分词器
- es ik 分词插件 词库热加载源码分析
- es配置拼音分词插件lc-pinyin安装教程
- ES学习(四)拼音插件分词elasticsearch-analysis-pinyin
- hanlp for elasticsearch(基于hanlp的es分词插件)
- es 一 ---- elasticsearch1.5安装使用+IK中文分词
- es 一 ---- elasticsearch1.5安装使用+IK中文分词
- es分词器
- ES中的分词器
- es ik分词
- es 分词配置
- 使用ES-Hadoop插件结合spark向es插入数据
- ES插件
- Elasticsearch安装中文分词插件ik(ES 2.3.3 & IK 1.9.3)
- es ik分词器安装
- NOIP2017游记
- HDU 5532:Almost Sorted Array
- 二进制距离
- 程序员的八个级别
- 二维数组中的查找
- ES分词插件使用
- 路径规划-人工势场法(Artifical Potential Field)
- MySQL删除外键
- Python问题:求助,在使用seek函数时,发现文件若有汉字,出现错误
- Linux中Web环境安装php的扩展
- zombie状态详谈
- BufferedReader BufferedWriter 中文下复制copy文件
- 计算理论____0__引论__自动机,可计算性,复杂性
- 设置tomcat 默认访问路径