自动补全:

要实现根据字母做补全,就必须对文档按照拼音分词。在GitHub上恰好有elasticsearch的拼音分词插件。地址:GitHub - medcl/elasticsearch-analysis-pinyin: This Pinyin Analysis plugin is used to do conversion between Chinese characters and Pinyin.

用初始化的拼音分词器进行分词:

为了实现得到的分词有中文也有拼音,我门需要

自定义拼音分词器(中文 + 拼音)

// 自定义拼音分词器
PUT /test
{"settings": {"analysis": {"analyzer": { "my_analyzer": { "tokenizer": "ik_max_word","filter": "py"}},"filter": {"py": { "type": "pinyin","keep_full_pinyin": false,"keep_joined_full_pinyin": true,"keep_original": true,"limit_first_letter_length": 16,"remove_duplicated_term": true,"none_chinese_pinyin_tokenize": false}}}},"mappings": {"properties": {"name":{"type": "text","analyzer": "my_analyzer"}}}
}

测试方式1:

# 测试 自定义的分词器 的方式1
POST /test/_analyze
{"text": ["如家酒店还不错"],"analyzer": "my_analyzer"
}

测试 自定义的分词器 的方式2:
        先添加两个 拼音相同的 字段, 后搜索

# 测试 自定义的分词器 的方式2
#先添加两个 拼音相同的 字段, 后搜索
POST /test/_doc/1
{"id": 1,"name": "狮子"
}POST /test/_doc/2
{"id": 2,"name": "虱子"
}GET /test/_search
{"query": {"match": {"name": "shizi"}}
}

注意事项:

问题:当我用自定义的拼音分词器去搜索一段又狮子的中文时,却也搜出了库里面的的虱子,因为“狮子”和“虱子”有着相同的拼音,而拼音分词器就是可以将相同拼音的中文都搜出来

解决:

为了避免搜索到同拼音字,搜索时不要用拼音分词器

删库,重设置和重建索引库,再重新测试上面的测试方式2就可以了

代码:

//删除库
DELETE /test// 自定义拼音分词器
PUT /test
{"settings": {"analysis": {"analyzer": { "my_analyzer": { "tokenizer": "ik_max_word","filter": "py"}},"filter": {"py": { "type": "pinyin","keep_full_pinyin": false,"keep_joined_full_pinyin": true,"keep_original": true,"limit_first_letter_length": 16,"remove_duplicated_term": true,"none_chinese_pinyin_tokenize": false}}}},"mappings": {"properties": {"name":{"type": "text","analyzer": "my_analyzer","search_analyzer": "ik_smart"}}}
}

测试(和上面的测试方式2一样): 

总结:

DSL实现自动补全查询:

(45条消息) DSL实现自动补全查询_其然乐衣的博客-CSDN博客

自动补全 (自定义)拼音分词器 搜索时注意事项相关推荐

  1. ElasticSearch从入门到精通--第七话(自动补全、拼音分词器、自定义分词、数据同步方案)

    ElasticSearch从入门到精通–第七话(自动补全.拼音分词器.自定义分词.数据同步方案) 使用拼音分词 可以引入elasticsearch的拼音分词插件,地址:https://github.c ...

  2. Elasticsearch 分布式搜索引擎 -- 自动补全(拼音分词器、自定义分词器、自动补全查询、实现搜索框自动补全)

    文章目录 1. 自动补全 1.1 拼音分词器 1.2.1 自定义分词器 1.2.2 小结 1.2 自动补全 1.3 实现酒店搜索框自动补全 1.3.1 修改酒店映射结构 1.3.2 修改HotelDo ...

  3. Elasticsearch实战-实现Hotel索引库的自动补全、拼音搜索功能

    一.实现思路 1.修改hotel索引库结构,设置自定义拼音分词器 2.修改索引库的name.all字段,使用自定义分词器 3.索引库添加一个新字段suggestion,类型为completion类型, ...

  4. es自定义拼音分词器处理中文拼音排序问题

    1.先上结论,如下mapping可以解决es拼音排序问题 {"settings": {"number_of_shards": "3",&qu ...

  5. SpringCloud(9)— Elasticsearch聚合和自动补全

    SpringCloud(9)- Elasticsearch聚合和自动补全 一 数据聚合 1.聚合的分类 聚合(aggregations)可以实现对文档数据的统计,分析,运算.常见的聚合有三种: 1.桶 ...

  6. 59、Docker ElasticSearch安装拼音分词器及自定义分词器

    一.使用拼音分词器 1.拼音分词器 2.docker下安装拼音分词器插件 3.测试拼音分词器 # 测试拼音分词器 POST /_analyze {   "text": [" ...

  7. PowerShell: 在自定义代码中支持Tab键自动补全

    大家好,我是码农杰克~ 在PowerShell中很多Cmdlet在输入参数时按tab键就可以可以自动补全,这是怎么做到的呢? 我们先来看个PowerShell自带命令:Test-Path 在Power ...

  8. elasticsearch搜素关键字自动补全(suggest)

    elasticsearch搜素关键字自动补全顾名思义 在搜索框搜索时能有提示列表可供选择. 最终效果如下: 该搜索优化功能是elasticsearch自带的即suggest,suggest即存储一个词 ...

  9. vscode自动加前缀_详解VScode自动补全CSS3前缀插件以及配置无效的解决办法

    1.在vscode中搜索Autoprofixer 2.在安装完成之后要配置 在需要添加前缀的css文件上,右键点击命令面板,输入Autoprefixer CSS就好啦 ps: 如果想要兼容性最好的话, ...

  10. 微服务框架 SpringCloud微服务架构 27 自动补全 27.2 自定义分词器

    微服务框架 [SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务] SpringCloud微服务 ...

最新文章

  1. 闪电网络运行过程中存在的一些问题
  2. SQL server2000安装时被挂起的问题
  3. oracle 三表关联更新_Oracle数据库入门
  4. list(列表) python
  5. 【Android 逆向】函数拦截实例 ( ③ 刷新 CPU 高速缓存 | ④ 处理拦截函数 | ⑤ 返回特定结果 )
  6. 轉:showModalDialog和showModelessDialog使用心得
  7. uibot和按键精灵区别_uibot和按键精灵哪个强大
  8. 如何理解pytorch 卷积里group 这个参数
  9. 禅道 Rest API 开发
  10. 一站式VDI部署教程(3)配置存储分层和重复数据删除功能
  11. SAP Cloud for Customer(C4C)的一些学习资料(持续更新)
  12. ajax发送私信,$.ajax()方法详解
  13. 提交文件至服务器的设置——表单属性中的 enctype
  14. 译文 | 与TensorFlow的第一次接触 第三章:聚类
  15. Oracle 20c 新特性:SQL 宏支持(SQL Macro)Scalar 和 Table 模式
  16. HTML文件点放在手机桌面,如何把手机桌面上的文件发送到微信里
  17. 字符串的连接最长路径查找
  18. Cannot find module ‘vite-plugin-compression‘ or its corresponding type declarations
  19. 小程序自定义filter调用报错underfined
  20. JavaScript实现贪吃蛇小游戏

热门文章

  1. 2022淘宝双十一优惠券如何叠加使用?淘宝双十一优惠券叠加规则介绍
  2. 华为工作10年,年薪80万。
  3. 一定要计算机专业才能进华为吗,想去华为一定要报考这三所大学
  4. 【数分】1. 常用的效应和定律
  5. PDF提取图片(错误纠正)
  6. LM7805:电压调节器的工作原理
  7. 手眼标定算法---Sai-Lenz(A New Technique for Fully Autonomous and Efficient 3D Robotics Hand/Eye Calibrati)
  8. Ultimaker_Cura-4.8-Win版本软件下载与安装
  9. BUUCTF_Web题目题解记录2
  10. linux unip命令