1、问题

示例数据:

{"id":"123456","title":"倚天屠龙记","author":"金庸"
}

查询示例:

GET article/_search
{"query": {"match_phrase": {"author": "禁用"}}
}
按上述查询语句能把“金庸”相关的文章搜出来,因为搜索时回把汉字转拼音,转换后的拼音跟“金庸”的拼音一致,所以可以召回。

2、解决思路

将搜索分词器与索引分词器分开,搜索分词器汉字转拼音功能取消,这样就不会搜索出同音字的内容。

将如下属性设置为false.
"keep_first_letter": false,
"keep_separate_first_letter": false,
"keep_full_pinyin": false,

3、修改后结果

搜"jin庸“可以搜出结果

搜”jin用“搜不出结果

4、索引定义

PUT article
{"mappings": {"properties": {"id": {"type": "keyword"},"title": {"type": "text","fields": {"pinyin": {"type": "text","analyzer": "pinyin_analyzer","search_analyzer": "pinyin_search_analyzer"}},"analyzer": "ik_analyzer"},"author": {"type": "text","fields": {"pinyin": {"type": "text","analyzer": "pinyin_analyzer","search_analyzer": "pinyin_search_analyzer"}},"analyzer": "ik_analyzer"}}},"settings": {"index": {"number_of_shards": "1","analysis": {"filter": {"pinyin_filter": {"type": "pinyin","keep_joined_full_pinyin": "true","lowercase": "true","keep_original": "true","remove_duplicated_term": "true","keep_separate_first_letter": "true","limit_first_letter_length": "30","keep_full_pinyin": "true"},"pinyin_search_filter": {"type": "pinyin","lowercase": true,"keep_first_letter": false,"keep_separate_first_letter": false,"keep_full_pinyin": false,"keep_original": false,"limit_first_letter_length": 30,"keep_separate_chinese": true}},"char_filter": {"tsconvert": {"convert_type": "t2s","type": "stconvert"}},"analyzer": {"pinyin_analyzer": {"filter": ["pinyin_filter","lowercase"],"tokenizer": "standard"},"pinyin_search_analyzer": {"filter": ["pinyin_search_filter","lowercase"],"tokenizer": "standard"},"ik_analyzer": {"filter": ["lowercase"],"char_filter": ["tsconvert"],"type": "custom","tokenizer": "ik_smart"}}},"number_of_replicas": "0"}}
}

解决拼音汉字混合搜索,由于同音字导致搜出不相干的内容相关推荐

  1. 汉字如何改革减少同音字?

    汉字如何改革减少同音字?  热议 | 汉字为什么这么特别,和世界上绝大多数文字都不一样?  <新华字典>有13000个汉字,1300多个读音,一个读音平均10个汉字,有什么好办法减少汉字的 ...

  2. 语音识别如何处理汉字中的「同音字」现象?

    outline: 1.背景 2.通俗易懂版 3.进阶版 4.多音字的处理能力 ------------------------------------ 1.背景 GB 2312标准共收录6763个汉字 ...

  3. mysql实现根据同音字、首字母、拼音进行模糊搜索(复刻钉钉模糊搜索)

    公司新上了一款低代码平台的项目,在使用过程中用户反馈搜索功能体感不好,不如钉钉的搜索灵活则尝试复刻了一下钉钉的灵活搜索,实现方式可能不同但最终展现的效果是一致的,特此记录 待优化: mysql自定义函 ...

  4. 【办公类-19-01-03】办公中的思考——Python,统计孩子名字的同音字(拼音)

    一.现象: 现在我是中班的班主任了,本周都在强化记忆孩子们的名字. 1.前期已经知道班级里的同姓最多: 因此,我有意识地在背诵姓氏时,考虑思考另几位同姓的人是谁? 情景1:找找同姓氏的人 师:你是HH ...

  5. 在PostgreSQL中实现按拼音、汉字、拼音首字母搜索的例子

    在PostgreSQL中实现按拼音.汉字.拼音首字母搜索的例子 作者 digoal 日期 2016-11-09 标签 PostgreSQL , 拼音 , 中文分词 , tsvector , 拼音首字母 ...

  6. 混合索引java代码,Elasticsearch 实现拼音,中文,首字母混合搜索

    在实际搜索需求中,常常需要对中文做拼音搜索,首字母搜索或者中文拼音首字母混合搜索. 比如要对 "广发聚财信用" 这几个中文进行拼音搜索,我们可能的搜索关键字是:"广发&q ...

  7. Java中获取GBK编码汉字的拼音首字母(包括生僻字)

    Java中获取GBK编码汉字的拼音首字母(包括生僻字) 前言 代码 结果 前言 网上关于Java中获取汉字的拼音首字母的方法很多,但大多基于GB2312的汉字所属编码位置判断方法,现有一种基于GBK编 ...

  8. python获取同音字

    利用汉字转拼音项目,简单实现获取一个汉字的同音字 1. 安装汉字转拼音包 pip install pypinyin 2.  获取所有汉字的拼音表示,相同拼音的汉字存储在以拼音为key的字典中,考虑声调 ...

  9. Jetson TX2 重装系统(刷机)+后续设置(安装Fcitx、解决拼音候选词不显示、换国内源、局域网实现VNC远程桌面)

    (珍爱生命,远离TX2!!!) 一.Jetson tx2刷机过程及注意事项 二.安装Fcitx+Googlepinyin 三.解决拼音模式下不显示候选词bug 四.Ubuntu18.04换国内源 五. ...

  10. ElasticSearch7.6.2 拼音,中文,中音搜索,高亮搜索关键字

    文章目录 前言 一.安装elasticsearch-analysis-pinyin分词器 1.下载解压打包 2.解压到elasticsearch plugins 插件目录下 3.重启es查看分词器是否 ...

最新文章

  1. LibreOJ β Round #2
  2. 在Windows环境下搭建Android开发环境
  3. java 执行cmd windows_Windows平台Java调用cmd命令执行程序
  4. 普华基础软件笔试_普华“2018上海市软件和集成电路产业发展专项资金项目”成功验收...
  5. .net excel循环插数据_Python实战: 如何将数据从一个Excel文件移动到另一个?
  6. 基于注解的字段脱敏处理
  7. 老是说我编译版本不够_Atlas 2.1.0 实践(1)—— 编译Atlas
  8. 【opencv有趣应用】图像拼图
  9. (1)简单工厂模式C++实现
  10. 一文看懂:边缘计算究竟是什么?为何潜力无限?(上)
  11. c++整人小程序(附源码)
  12. 电力系统分析—潮流计算代码Python编程练习(基于极坐标形式的常规牛拉法)
  13. 全球资本市场竞争力指数排名发布,中国跃居第五
  14. Linux系统中CPU占用率较高问题排查思路与解决方法
  15. adb 查看磁盘占用_ADB——命令大全
  16. 20行代码制作字符画版小黄鸭表情包 | 文末送书抽奖结果
  17. wsl 2 中安装docker
  18. Nape的回调系统 nape.callbacks
  19. mtk使用android开关机动画,android MTK修改开关机动画
  20. 英语单词如何看字母划分音节

热门文章

  1. gxworks2软件测试对话框,超实用!GX Works2软件的启动与窗口功能应用
  2. Caffe模型详细介绍
  3. app软件测试的意义,APP测试用例的作用是什么
  4. “泰迪杯”挑战赛 - 基于协同过滤的推荐算法研究与 GUI 设计
  5. 北理工-大二数据结构乐学编程题-约瑟夫问题、验证表、循环小数、综教楼后的坑...
  6. Linux服务器安全加固
  7. 数据治理--元数据--元数据的作用
  8. 【服务治理】服务治理漫谈
  9. 软件项目开发文档 模板
  10. 支持firefox 3.6的onenote插件