一、使用拼音分词器

1、拼音分词器

2、docker下安装拼音分词器插件

3、测试拼音分词器

# 测试拼音分词器
POST /_analyze
{
  "text": ["如家酒店还不错"],
  "analyzer": "pinyin"
}

二、自定义分词器

1、 如果只是单独使用拼音分词器,是没办法满足具体业务使用场景的,这时候就需要自定义分词器

2、通过自定义分词器,将ik分词器与拼音分词器整合起来,来保证我们的搜索既满足汉子也满足拼音

# 自定义拼音分词器
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
        }
      }
    }
  }
}

// 酒店数据索引库
PUT /hotel
{
  "settings": {
    "analysis": {
      "analyzer": {
        "text_anlyzer": {
          "tokenizer": "ik_max_word",
          "filter": "py"
        },
        "completion_analyzer": {
          "tokenizer": "keyword",
          "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": {
      "id":{
        "type": "keyword"
      },
      "name":{
        "type": "text",
        "analyzer": "text_anlyzer",
        "search_analyzer": "ik_smart",
        "copy_to": "all"
      },
      "address":{
        "type": "keyword",
        "index": false
      },
      "price":{
        "type": "integer"
      },
      "score":{
        "type": "integer"
      },
      "brand":{
        "type": "keyword",
        "copy_to": "all"
      },
      "city":{
        "type": "keyword"
      },
      "starName":{
        "type": "keyword"
      },
      "business":{
        "type": "keyword",
        "copy_to": "all"
      },
      "location":{
        "type": "geo_point"
      },
      "pic":{
        "type": "keyword",
        "index": false
      },
      "all":{
        "type": "text",
        "analyzer": "text_anlyzer",
        "search_analyzer": "ik_smart"
      }
    }
  }
}

三、总结分析

本章学习了如何安装拼音分词器和自定义分词器。

1、只是汉子搜索是无法满足业务需求的,所以引入了拼音分词器。

2、为了搜索时,同时满足汉子与拼音,所以需要自定义分词器。

3、为了避免搜索到同音词,搜索时不要使用拼音分词器。

拼音分词器插件https://download.csdn.net/download/weixin_40968009/87253646

以上内容来自黑马程序员,课程学习节奏循序渐进。本人学习后觉得非常不错,有兴趣的小伙伴千万不要错过。

SpringCloud 黑马程序员公开课https://www.bilibili.com/video/BV1LQ4y127n4/?spm_id_from=333.337.search-card.all.click&vd_source=14fddb9f4c113af7bdb1f50651dffc4d

59、Docker ElasticSearch安装拼音分词器及自定义分词器相关推荐

  1. Elasticsearch安装拼音插件结合IK中文分词+拼音(在线+离线)

    1.在线联网安装 直接进入容器内部进行编辑 # 进入容器内部编辑 docker exec -it elasticsearch bash# 安装IK分词器拼音插件(Github官网) elasticse ...

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

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

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

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

  4. elasticsearch分词练习、自定义分词器练习

    elasticsearch分词练习.自定义分词器练习 分词练习 自定义分词器 分词练习 准备数据 post metric_zabbix/log {"@message":" ...

  5. ElasticSearch入门:ES分词器与自定义分词器

    ES入门:ES分词器与自定义分词器 分词器的简单介绍 不同分词器的效果对比 自定义分词器的应用 分词器的简单介绍 分词器是es中的一个组件,通俗意义上理解,就是将一段文本按照一定的逻辑,分析成多个词语 ...

  6. ik分词器如何自定义分词

    ik分词器如何自定义分词 声明 ik分词器如何自定义分词 自定义分词不生效问题 声明 本文涉及的es, elasticsearch-head, kibana, ik分词器的安装配置可以参考我的其它博客 ...

  7. Elasticsearch7 分词器(内置分词器和自定义分词器)

    文章目录 Elasticsearch7 分词器(内置分词器和自定义分词器) analysis 概览 char_filter html_strip mapping pattern_replace fil ...

  8. WebServices中使用cxf开发日志拦截器以及自定义拦截器

    首先下载一个cxf实例,里面包含cxf的jar包.我下的是apache-cxf-2.5.9 1.为什么要设置拦截器? 为了在webservice请求过程中,能动态操作请求和响应数据, CXF设计了拦截 ...

  9. flume拦截器及自定义拦截器

    拦截器做什么呢? 时间拦截器 以时间拦截器为例.会在Event的header中添加一个属性进去,属性的key叫做timestamp, value是当前的毫秒值. 问题是写到header然后呢?有啥用呢 ...

最新文章

  1. 状态模式(State)
  2. WCF NetTcpBinding Transport安全模式(6) ClientCredentialType证书验证模式---- PeerTrust验证模式...
  3. 现代密码学5.2--域扩张:Merkle-Damgard Transform
  4. 范围查询 BETWEEN AND
  5. MicroProfile 2.2 BOM导入支持
  6. 无线打印 airprint 服务器,如何让 Windows 的共享打印机支持 AirPrint
  7. 将图像分成m×n的小子块
  8. Python让繁琐工作自动化——chapter13 处理PDF和Word文档
  9. java判断字符串不为空_Java判断字符串是否为空的方法
  10. 拼接大屏数据展示_八步教会你如何制作数据可视化大屏
  11. cad老是弹出命令中发生异常_CAD为什么会异常退出?遇到CAD异常退出怎么办-百度经验...
  12. invalid index of a 0-dim tensor
  13. java xml 大文件怎么打开_JAVA xml 流方式读取。数据挖掘大文件预处理。
  14. 大数据开发 电脑内存大小
  15. 关于vs code下载vetur后vue代码颜色仍无改变的解决方法
  16. Navicat11 for mysql(包括激活工具)亲测可用
  17. 微信的野心到底有多可怕
  18. 平价款的血糖血压监测工具,用它养成健康生活习惯,dido F50S Pro上手
  19. MySQL性能调优必知:Performance Schema引擎的配置与使用
  20. 排查计算机安全隐患,幼儿园安全隐患排查的自查报告

热门文章

  1. 三国志战略版:Daniel_S7赤壁前瞻5_新武将战法解读
  2. 分布式事务.理论基础
  3. 把UTF-8编码转换为GB2312编码
  4. java起名_java命名方法 | 学步园
  5. lpoj5576 hongrock的柠檬树
  6. 简单计算器 (实数计算 先乘除后加减)
  7. Python销售订单分析
  8. 边听边记-创业分子-互联网颠覆医疗
  9. autojs模仿qq消息列表侧拉置顶删除菜单
  10. macbook air 17 inter 芯片笔记本 安装单系统windows11