ElasticSearch 拼音插件elasticsearch-analysis-pinyin + IK 分词器

news2025/7/27 4:21:04

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_wordmy_pinyin + ik_smart 创建自定义分词器
  • my_pinyin 定义拼音分词过滤
  • displayName 字段使用 ik_max_word_pinyin 使用 拼音 汉字 双检索, 并 添加 suggest 检索补全

pinyin 插件可选参数说明

  • keep_first_letter 保存第一个字母 例如: 刘德华 > ldh,默认值:true
  • keep_separate_first_letter 启用此选项后,将单独保留第一个字母,例如:刘德华 > l, d, h, 默认值: false注意:由于词频太高,​​查询结果可能太模糊
  • limit_first_letter_length 设置 first_letter 结果的最大长度默认值:16
  • keep_full_pinyin 当启用此选项时,例如:刘德华> [ liu, de, hua],默认值:true
  • keep_joined_full_pinyin 当启用此选项时,例如:刘德华> [ liudehua],默认值:false
  • keep_none_chinese 结果保留非中文字母或数字默认:true
  • keep_none_chinese_together 保持非中文字母在一起,默认:true,例如:DJ音乐家-> DJ, yin, yue, jia, 当设置为 时false,例如:DJ音乐家-> D, J, yin, yue, jia, 注意:keep_none_chinese应先启用keep_none_chinese_in_first_letter首字母保留非中文字母,例如:刘德华AT2016-> ldhat2016,默认:true
  • keep_none_chinese_in_joined_full_pinyin 保留非中文字母加入全拼音,例如:刘德华2016-> liudehua2016,默认:false
  • 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 启用此选项时,将删除重复的术语以保存索引,例如:de的> de,默认值:false注意:位置相关查询可能会受到影响
  • ignore_pinyin_offset 6.0以后严格限制offset,不允许重叠token,有了这个参数,overlapping token会忽略offset注意,所有position相关的query或者highlight都会出错,应该使用multi fields,不同的设置不同查询目的。如果需要偏移量,请将其设置为 false。 默认值:true

导入数据

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"
			}
		}
	}
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/16729.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件方面的文档标准GB/T

在文档标准方面,主要有《软件文档管理指南》(GB/T 16680-1996)、《计算机软件产品开发文件编制指南》(GB/T 8567-2006)和《计算机软件需求说明编制指南》(GB/T 9385-2008)等三个标准。 1. GB/T…

C语言源代码系列-管理系统之学生信息管理系统

往期文章分享点击跳转>《导航贴》- Unity手册,系统实战学习点击跳转>《导航贴》- Android手册,重温移动开发 👉关于作者 众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过…

竞赛开源项目汇总

1、Kaggle Titanic 一个Kaggle竞赛的案例,演示基本的数据转换、分析和可视化技术 https://github.com/agconti/kaggle-titanic 2、Humpback Whale Identification 1st https://github.com/earhian/Humpback-Whale-Identification-1st- 3、Data Science Competi…

【附源码】计算机毕业设计JAVA砂石矿山管理系统

项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: Springboot mybatis Maven Vue 等等组成,B/…

无代码开发工具突破数据“孤岛“,让数据“动”起来

在信息化的发展过程中,每个独立运作的企业和机构都会使用2-3种以上的软件,而在某些比较成熟的公司,其软件产品的数量就更加惊人了,一个中等规模的公司可以拥有数百套软件系统来支持公司的正常运转。 许多公司的CIO或CTO&#xff0…

智能漏电断路器主要有哪些功能?

安科瑞 华楠 ASCB1 系列智能微型断路器是安科瑞电气股份有限公司 全新推出的智慧用电产品,产品由智能微型断路器与智 能网关两部分组成,可用于对用电线路的关键电气因 素,如电压、电流、功率、温度、漏电、能耗等进行实 时监测,具…

DOX-TF/Ce6/IgG 转铁蛋白/光敏剂/单抗IgG修饰阿霉素/阿霉素白蛋白纳米粒的制备

今天要分享的科研知识是DOX-TF/Ce6/IgG 转铁蛋白/光敏剂/单抗IgG修饰阿霉素/阿霉素白蛋白纳米粒,下面和小编一起来看! DOX-IgG 单抗IgG偶联阿霉素的制备: 设计了一种叶酸-聚乙二醇-免疫球蛋白G-阿霉素(FA-PEG-IgG-DOX)的四元靶向给药系统.其…

石子合并系列问题

石子合并 石子合并问题在网上有三个版本: AcWing 282. 石子合并 设有 N 堆石子排成一排,其编号为 1,2,3,…,N。 每堆石子有一定的质量,可以用一个整数来描述,现在要将这 N 堆石子合…

Android 编译C++

Android 编译C项目前言正文一、基本知识① 要做什么?② JNI是什么?③ NDK是什么?二、配置NDK三、创建新工程① 工程目录说明② 分析cpp文件③ JNI数据类型四、现有工程使用C① 创建C文件② 创建CMake③ 使用C五、源码前言 在开发过程中&#…

集采报告丨国家药品带量采购政策及趋势分析

本人在医药领域从事药品数据分析工作多年,前几天在了解VBP药品带量采购相关事项时遇见了一些网上不好查找答案的问题(国家药品带量采购目录、流程、区别、数据分析、政策、执行、结果、公示、网站、意思),对此笔者将其整理出来并解…

追求极致性能,RocketMQ 消息通信详解

1 介绍 RocketMQ 消息队列架构主要包括 NameServe、Broker(Master/Slave)、Producer、Consumer 4 个核心部件,基本执行流程如下: 点击查看大图 NameServer 优先启动。NameServer 是整个 RocketMQ 的“中央大脑” ,作为 RocketMQ 的服务注册中…

计算机网络(下)

运输层 运输层概述 概念 进程之间的通信 从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。当网络的边缘部分中的两个主机使用网络的核心部分的功能进行端到端的通…

【深度学习】U-net网络结构搭建 | pytorch

文章目录前言一、U-net网络结构复现(上采样部分采用转置卷积nn.ConvTranspose2d)1.1、整体结构介绍1.2、encoder部分实现(左边网络部分)1.3、decoder部分实现(右边网络部分)1.4、整个网络搭建二、U-net网络…

React源码分析5-commit

前两章讲到了,react 在 render 阶段的 completeUnitWork 执行完毕后,就执行 commitRoot 进入到了 commit 阶段,本章将讲解 commit 阶段执行过程源码。 总览 commit 阶段相比于 render 阶段要简单很多,因为大部分更新的前期操作都…

Dubbo框架基本使用

一:软件架构的演练过程【了解】 单体应用架构--->垂直应用架构--->分布式架构(SOA架构/微服务架构) 1.单体应用架构 单体应用架构,就是将一个系统的多个模块做成一个项目,然后部署到tomcat服务器上 优点: 项目架…

第01章+Java概述

课程链接:韩顺平Java_程序举例_哔哩哔哩_bilibili 什么叫程序 程序:计算机执行某些操作或解决某个问题而编写的一系列有序指令的集合。 Java版本迭代 官网介绍: Oracle Java SE Support Roadmap LTS为长期支持版本:推荐使用…

IQM的Unimon:一种新的量子比特,可促进量子计算机的实用化

​ 量子处理器中unimon 量子比特的艺术效果图。(图片来源:网络) 来自芬兰IQM量子计算机公司、阿尔托大学和芬兰VTT技术研究中心的一组科学家发现了一种新的超导量子比特——unimon,可提高量子计算的准确性。该团队已经实现了第一…

解读阿里Q2财报:阿里云的跨周期引擎

昨天,阿里巴巴公布今年6月到9月财务业绩,显示云业务总收入为267.6亿元,在除去阿里内部使用的额度后,抵销跨分部交易后营收为207.57亿元,比上一个季度增长超17%。 具体看,值得关注的有三点: 1、…

Python爬取公交线路信息及站点shp数据 文末附数据下载地址

本篇主要记录爬取公交网整个过程,由于这次所用方法虽比较常规,但由于该网站页面内容转码原因以及遍历链接较多,所以小坑还是比较多的,特在此进行记录。 以前爬过百度地图,当时用的是API平台,加上网站比较规范,所以标签节点什么的都比较清晰,但这次由于特殊原因所选择的…

对JavaScript中的Math.random随机函数破解

什么是随机 在通常的说法中,随机性是指事件中明显实际缺乏可预测性,事件、符号或步骤的随机序列通常没有顺序 举个例子,比如我们在抛硬币,硬币的结果取决于很多因素,比如说我们施加的力,空气阻力&#xff…