Elasticsearch添加拼音搜索支持
一份不错的资料
ELASTIC 搜索开发实战
一、安装插件
拼音分词扩展elasticsearch-analysis-pinyin安装
文档: https://github.com/medcl/elasticsearch-analysis-pinyin
二、新建索引添加拼音支持
<index>
替换为 实际 index
<type>
替换为 实际 type
PUT <index>
{"settings" : {"analysis" : {"analyzer" : {"pinyin_analyzer" : {"tokenizer" : "my_pinyin"}},"tokenizer" : {"my_pinyin" : {"type" : "pinyin","keep_first_letter":false,"keep_separate_first_letter" : false,"keep_full_pinyin" : true,"keep_original" : false,"limit_first_letter_length" : 16,"lowercase" : true}}}},"mappings": {"<type>": {"properties": {"name": {"type": "text","index": true,"fields":{"pinyin":{"type":"text","analyzer":"pinyin_analyzer"}}},"link": {"type": "keyword","index": false},"id": {"type": "long"},"update_time": {"type": "date","format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"}}}}
}
分词测试
GET <index>/_analyze
{"field": "name.pinyin","text": "内蒙古"
}返回
{"tokens": [{"token": "nei","start_offset": 0,"end_offset": 1,"type": "word","position": 0},{"token": "meng","start_offset": 1,"end_offset": 2,"type": "word","position": 1},{"token": "gu","start_offset": 2,"end_offset": 3,"type": "word","position": 2}]
}
二、已有索引添加拼音支持
1、新建索引
PUT <index>
{"mappings": {"<type>": {"properties": {"name": {"type": "keyword","index": true},"link": {"type": "keyword","index": false},"id": {"type": "long"},"update_time": {"type": "date","format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"}}}}
}
2、设置拼音分词器
POST <index>/_closePUT <index>/_settings
{"index": {"analysis": {"analyzer": {"pinyin_analyzer": {"tokenizer": "my_pinyin"}},"tokenizer": {"my_pinyin": {"type": "pinyin","keep_first_letter": true,"keep_separate_first_letter": true,"keep_full_pinyin": true,"keep_original": false,"limit_first_letter_length": 16,"lowercase": true}}}}
}POST <index>/_open
3、修改mapping,添加拼音分词器
PUT <index>/<type>/_mapping
{"<type>": {"properties": {"name": {"type": "keyword","index": true,"fields":{"pinyin":{"type":"text","analyzer":"pinyin_analyzer"}}},"link": {"type": "keyword","index": false},"id": {"type": "long"},"update_time": {"type": "date","format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"}}}
}GET <index>/_mapping# 将当前索引的数据重新替换一下当前索引
POST <index>/_update_by_query?conflicts=proceed
4、搜索测试
get <index>/_search
{"query_string": {"fields": ["name","name.pinyin"],"query": "王苏川","default_operator": "AND"}
}
参考
Elastic 搜索开发实战 拼音处理
Elasticsearch添加拼音搜索支持相关推荐
- Elasticsearch之拼音搜索(十五)
拼音搜索在中文搜索环境中是经常使用的一种功能,用户只需要输入关键词的拼音全拼或者拼音首字母,搜索引擎就可以搜索出相关结果.在国内,中文输入法基本上都是基于汉语拼音的,这种在符合用户输入习惯的条件下缩短 ...
- select2.js实现拼音搜索支持
拼音搜索的原理: 将下拉框选项中的中文转换成汉语拼音(或拼音首字母),然后与输入的字母进行比较,如果包含则被检索出来. 引用插件: 1. pinyin.js文件用于将汉字转化为拼音的JavaScrip ...
- layui风格穿梭组件 带拼音搜索 添加多选
基于前辈的组件修改,layui风格,已修改成layui第三封控件规范 在原基础上添加多选: 添加拼音搜索: [原文]整合 layui 穿梭框组件 [引用]拼音搜索用到的JS,用法简单! 链接失效的话, ...
- 混合索引java代码,Elasticsearch 实现拼音,中文,首字母混合搜索
在实际搜索需求中,常常需要对中文做拼音搜索,首字母搜索或者中文拼音首字母混合搜索. 比如要对 "广发聚财信用" 这几个中文进行拼音搜索,我们可能的搜索关键字是:"广发&q ...
- 【Solr】 solr对拼音搜索和拼音首字母搜索的支持
问:对于拼音和拼音首字母的支持,当你在搜商品的时候,如果想输入拼音和拼音首字母就给出商品的信息,怎么办呢? 实现方式有2种,但是他们其实是对应的. 用lucene实现 1.建索引, 多建一个索引字段 ...
- elasticsearch实现基于拼音搜索
1.背景 一般情况下,有些搜索需求是需要根据拼音和中文来搜索的,那么在elasticsearch中是如何来实现基于拼音来搜索的呢?可以通过elasticsearch-analysis-pinyin分析 ...
- 自制Unity文件查找器,支持拼音搜索
前言 一个大型项目,配置表上千个是很正常的,这个时候想要搜索某个配置表,是有点蛋疼的事情. 自己写个配置查找器吧,效果如下: 优点: 搜索速度快: 支持拼音搜索: 支持快速打开: 缺点: 拼音只能挨个 ...
- android 拼音搜索联系人分析与实现(支持多音字,支持T9搜索,支持Qwerty搜索)
最近的项目开发过程中涉及到了联系人T9键盘搜索和Qwerty键盘搜索,也分别写了相关的博客: <android T9 搜索联系人分析与实现(支持多音字)> <android Qwer ...
- select2.js插件新增支持拼音搜索
话不多说直奔主题 1.拼音搜索的原理: 将下拉框选项中的中文转换成汉语拼音,然后与输入的字母进行比较,如果包含则被检索出来. 2.效果: 3.在select2.js中找到matcher 方法,对此方法 ...
- Simple: 一个支持中文和拼音搜索的 sqlite fts5插件
之前的工作关系,需要在手机上支持中文和拼音搜索.由于手机上存储数据一般都是用 sqlite,所以是基于 sqlite3 fts5 来实现.这段时间再次入门 c++,所以想用 c++ 实现一下,一来用于 ...
最新文章
- open的O_DIRECT选项
- MyBatis SQL语句操作Mysql
- C#之 VS2008 之 Extension Methods
- 使用python写一个名片管理系统
- L2-006 树的遍历-团体程序设计天梯赛GPLT
- 苹果电脑删除软件_易我Mac数据恢复软件,解决苹果电脑T2芯片数据恢复难题!
- 用python实现星期的转换_在Python中将秒转换为周-天-小时-分钟-秒
- 调车遇到的问题及解决办法
- 不能从const char *转换为LPCWSTR --VS经常碰到
- 看了这张图你还会想着用MonoDroid来开发Android应用吗?
- 【Windows】安装NVIDIA驱动 / 更新驱动
- 征服 Apache + SSL
- 百度GOALS比赛总结
- 【Redis】Redis数据库
- 【力扣(LeetCode)】【C/C++】【19.删除链表的倒数第 N 个结点】
- 河南朱砂服务器位置,河南省开封市通许县朱砂镇
- 已知两点求直线一般方程,已知三点求平面一般方程
- Android手机 显示光标,AndroidStudio怎么显示光标悬浮提示?
- 发票管理软件开发中遇到的一些实际问题并解决方案
- 赋能智慧物流,思迈特软件Smartbi引领行业效率变革