ElasticSearch 拼音插件elasticsearch-analysis-pinyin + IK 分词器
ElasticSearch + kibana 部署略
创建索引
PUT /nba_20220101
{"mappings": {"properties": {"age": {"type": "integer"},"birthDay": {"type": "date"},"birthDayStr": {"type": "keyword"},"code": {"type": "text"},"country": {"type": "keyword"},"countryEn": {"type": "keyword"},"displayAffiliation": {"type": "text"},"displayName": {"type": "text","analyzer": "ik_max_word_pinyin", "fields" : {"suggest" : {"type" : "completion","analyzer" : "ik_smart_pinyin","preserve_separators" : true,"preserve_position_increments" : true,"max_input_length" : 50}}},"displayNameEn": {"type": "text"},"draft": {"type": "long"},"heightValue": {"type": "float"},"jerseyNo": {"type": "keyword"},"playYear": {"type": "long"},"playerId": {"type": "keyword"},"position": {"type": "text"},"schoolType": {"type": "text"},"teamCity": {"type": "text"},"teamCityEn": {"type": "text"},"teamConference": {"type": "keyword"},"teamConferenceEn": {"type": "keyword"},"teamName": {"type": "keyword"},"teamNameEn": {"type": "keyword"},"weight": {"type": "text"}}},"settings" : {"index" : {"analysis" : {"analyzer" : {"default" : {"type" : "ik_max_word"}}}},"analysis": {"analyzer": {"ik_smart_pinyin": {"type": "custom","tokenizer": "ik_smart","filter": ["my_pinyin"]},"ik_max_word_pinyin": {"type": "custom","tokenizer": "ik_max_word","filter": ["my_pinyin"]}},"filter": {"my_pinyin": {"type" : "pinyin","keep_separate_first_letter" : false,"keep_full_pinyin" : true,"keep_original" : true,"limit_first_letter_length" : 16,"lowercase" : true,"remove_duplicated_term" : true}}}}
}
自定义 ik_smart_pinyin
ik_max_word_pinyin
分词器
- 分别基于
my_pinyin + ik_max_word
和my_pinyin + ik_smart
创建自定义分词器 my_pinyin
定义拼音分词过滤displayName
字段使用ik_max_word_pinyin
使用 拼音 汉字 双检索, 并 添加suggest
检索补全
pinyin
插件可选参数说明
配置参数 | 说明 | 示例 |
---|---|---|
keep_first_letter |
保存第一个字母,默认值:true
|
例如: 刘德华 > ldh
|
keep_separate_first_letter |
启用此选项后,将单独保留第一个字母, 默认值: false
|
例如:刘德华 > l, d, h,(注意:由于词频太高,查询结果可能太模糊)
|
limit_first_letter_length |
设置 first_letter 结果的最大长度,默认值:16
|
|
keep_full_pinyin |
当启用此选项时,默认值:true
|
例如:刘德华> [ liu, de, hua] |
keep_joined_full_pinyin |
当启用此选项时,默认值:false
|
例如:刘德华> [ liudehua] |
keep_none_chinese |
结果保留非中文字母或数字,默认值:true
|
例如:刘德华AT2016-> ldhat2016, 注意:keep_none_chinese应先启用keep_none_chinese_in_first_letter
|
keep_none_chinese_in_first_letter |
首字母保留非中文字母,默认值:true
|
例如:刘德华AT2016-> ldhat2016 |
keep_none_chinese_together |
保持非中文字母在一起,默认:true
|
例如:DJ音乐家-> DJ, yin, yue, jia , 当设置为 时false,例如:DJ音乐家-> D, J, yin, yue, jia, |
keep_none_chinese_in_joined_full_pinyin |
保留非中文字母加入全拼音,默认:false
|
例如:刘德华2016-> liudehua2016 |
none_chinese_pinyin_tokenize |
如果非中文字母是拼音,则将其拆分为单独的拼音词 ,默认:true
|
例如:liudehuaalibaba13zhuanghan-> liu, de, hua, a, li, ba, , ba, 13, zhuang, han ( 注意: keep_none_chinese 并且keep_none_chinese_together 应首先启用 )
|
keep_original |
启用此选项时,也将保留原始输入 ,默认值:false
|
|
lowercase |
小写非汉字,默认:true
|
|
trim_whitespace |
默认值:true
|
|
remove_duplicated_term |
启用此选项时,将删除重复的术语以保存索引,默认值:false
|
例如:de的> de (注意:位置相关查询可能会受到影响 ) |
ignore_pinyin_offset |
6.0以后严格限制offset,不允许重叠token,有了这个参数,overlapping token会忽略offset ,默认值:true
|
注意,所有position相关的query或者highlight都会出错,应该使用multi fields,不同的设置不同查询目的。如果需要偏移量,请将其设置为 false。 |
导入数据
POST /nba_20220101/_doc/566
{"countryEn": "Croatia","teamName": "快船","birthDay": 858661200000,"country": "克罗地亚","teamCityEn": "LA","code": "ivica_zubac","displayAffiliation": "Croatia","displayName": "伊维察 祖巴茨哥哥","schoolType": "","teamConference": "西部","teamConferenceEn": "Western","weight": "108.9 公斤","teamCity": "洛杉矶","playYear": 3,"jerseyNo": "40","teamNameEn": "Clippers","draft": 2016,"displayNameEn": "Ivica Zubac","heightValue": 2.16,"birthDayStr": "1997-03-18","position": "中锋","age": 22,"playerId": "1627826"
}
校验汉字分词是否有效
GET /nba_20220101/_search
{"query": {"match": {"displayName": "伊维察"}}
}
校验拼音分词是否有效
GET /nba_20220101/_search
{"query": {"match": {"displayName": "yi wei"}}
}
校验汉字补全是否生效
POST /nba_20220101/_search
{"suggest": {"my-suggestion": {"text": "伊维","completion": {"field": "displayName.suggest"}}}
}
校验拼音补全是否生效
POST /nba_20220101/_search
{"suggest": {"my-suggestion": {"text": "yi wei","completion": {"field": "displayName.suggest"}}}
}
ElasticSearch 拼音插件elasticsearch-analysis-pinyin + IK 分词器相关推荐
- 拾忆Elasticsearch01:Elasticsearch概述及相关ES、IK分词器等下载安装
为了防止老年痴呆记不住学过的Elasticsearch,在这里写点blog回顾一下 写在前面,建议下载以下出现的Elasticsearch版本,我之前下的7.6.1在这里找不到对应的springboo ...
- elasticsearch学习(六):IK分词器
1.IK分词器简介 IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包.从2006年12月推出1.0版开始IKAnalyzer已经推出 了3个大版本.最初,它是以开源项目L ...
- ElasticSearch最新版(8.4.3) IK分词器基于mysql实现热更新词库
1 源码阅读思路 阅读Dictionary类下的initial方法,基于该方法进行改造 2 下载源码 https://github.com/medcl/elasticsearch-analysis-i ...
- Elasticsearch 6.4 ingest-attachment对文件IK分词器全文检索
这里写自定义目录标题 1.简介 2.实现步骤 1.简介 ElasticSearch只能处理文本,不能直接处理文档.要实现 ElasticSearch 的附件导入需要以下两个步骤: 一.对多种主流格式的 ...
- ElasticSearch、kibana、head、ik分词器在Windows下的安装
文章目录 ElasticSearch简介 ElasticSearch安装 Kibana的安装 head的安装 ik的安装 ElasticSearch简介 Elasticsearch是一个基于Lucen ...
- 【javaWeb微服务架构项目——乐优商城day07】——Elasticsearch介绍和安装及使用(安装kibana,安装ik分词器,Spring Data Elasticsearch,高级查询)
文章目录 0.学习目标 1.Elasticsearch介绍和安装 1.1.简介 1.1.1.Elastic 1.1.2.Elasticsearch 1.1.3.版本 1.2.安装和配置 1.2.1.新 ...
- elasticsearch 的高级检索以及 Ik分词器的配置和使用
首先准备测试数据 这是测试数据 点击去获取 使用上一篇我们安装的 kibana 将他们批量插入到es中 POST /bank/account/_bulk 数据插入成功之后可以在 psotman 调用 ...
- ElasticSearch学习----IK分词器
IK分词器 一. IK分词器 ①. 在线安装IK 1. 必须将ElasticSearch服务中原始数据删除 2. 在ElasticSearch安装目录中执行如下命令 2. 重启ElasticSearc ...
- 分布式系列教程(34) -Linux下安装ik分词器
1.引言 因为Elasticsearch中默认的标准分词器分词器对中文分词不是很友好,会将中文词语拆分成一个一个中文的汉字,因此引入中文分词器-es-ik插件. 例如使用传统的分词器,可以看到把中文分 ...
- elasticsearch基础6——head插件安装和web页面查询操作使用、ik分词器
文章目录 一.基本了解 1.1 插件分类 1.2 插件管理命令 二.分析插件 2.1 es中的分析插件 2.1.1 官方核心分析插件 2.1.2 社区提供分析插件 2.2 API扩展插件 三.Head ...
最新文章
- jQuery监控页面所有ajax请求的方法
- php python 函数互相翻译的网站
- 用python画烟花-python实现浪漫的烟花秀
- 框架源码系列四:手写Spring-配置(为什么要提供配置的方法、选择什么样的配置方式、配置方式的工作过程是怎样的、分步骤一个一个的去分析和设计)...
- openresty开发系列3--nginx的平滑升级
- 【转】Asp.net的生命周期之应用程序生命周期
- 电商素材网站解救节日美工忙,赶紧收藏
- html 如何 创建目录,html - javascript:如何自动生成一篇文章的目录
- HDU1406 完数【水题】
- windows mysql 自动备份_windows mysql 自动备份的几种方法总结--岁月博客提供
- PBOC规范研究之四、文件结构及访问(转)
- android同一个activity中传递参数,Android中Activity之间跳转和参数传递的实例
- 使用wps插件,实现word转PDF
- oracle19c报价_Oracle 19c下载
- 数据预测模型_如何根据已有数据得出预测模型?线性回归公式来帮你!
- Git同时配置github和gitee
- asp.net大文件分块上传视频教程
- C#数字黑洞之一(水仙花数黑洞153)
- 安装hue一直失败,请大佬帮帮忙,万分感谢!!!!!!!!
- 5G商用价值到底在哪里,可以赋予哪些能力?