1. 下载elasticsearch-analysis-pinyin拼音分词器
     https://codeload.github.com/medcl/elasticsearch-analysis-pinyin/zip/v6.4.3
     
    解压
  2. 因为elasticsearch拼音插件和你的elasticsearch版本必须一致,如果不一致,可以修改pom.xml的版本为你的elasticsearch的版本,再用maven打包。
     
  3. 编译打包
    mvn clean install -Dmaven.test.skip

  4. 打包成功后,找到target\releases目录下的文件
     
    将该文件复制出来,解压,重命名pinyin。  
     
     将pinyin文件上传到服务器的elasticsearch安装目录的plugins目录下 
      
  5. 启动elasticsearch
    su xiaobo
    cd /usr/local/elasticsearch6.4/bin
    ./elasticsearch -d
  6. Postman测试
    地址: 192.168.2.115:9200/_analyze
    数据:
    {"analyzer": "pinyin","text": "华为"
    }

  7. 测试结果
  8. 因为我之前整合的文档是Ik分词器,如果想使用pinyin分词和IK一起的话,得自定义分词器(ik、pinyin)
  9. 查看之前得索引文档分词器
    GET /goods/_mapping

    结果: goods索引文档得name字段使用得是ik分词器

  10. 删除索引
    DELETE /goods
  11. 自定义分词器ik_smart_pinyin
    PUT /goods
    {"settings": {"analysis": {"analyzer": {"ik_smart_pinyin": {"type": "custom","tokenizer": "ik_smart","filter": ["my_pinyin", "word_delimiter"]},"ik_max_word_pinyin": {"type": "custom","tokenizer": "ik_max_word","filter": ["my_pinyin", "word_delimiter"]}},"filter": {"my_pinyin": {"type" : "pinyin","keep_separate_first_letter" : true,"keep_full_pinyin" : true,"keep_original" : true,"limit_first_letter_length" : 16,"lowercase" : true,"remove_duplicated_term" : true }}}}}
    

    // ik_smart_pinyin分词器使用得是pinyin和ik分词器得结合

  12. 重新指定文档类型映射拼音分词类型
    POST /goods/_mapping/goods
    {"goods": {"properties": {"@timestamp": {"type": "date"},"@version": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"attribute_list": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"category_id": {"type": "long"},"created_time": {"type": "date"},"detail": {"type": "text","analyzer":"ik_smart_pinyin","search_analyzer":"ik_smart_pinyin"},"id": {"type": "long"},"main_image": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"name": {"type": "text","analyzer":"ik_smart_pinyin","search_analyzer":"ik_smart_pinyin"},"revision": {"type": "long"},"status": {"type": "long"},"sub_images": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"subtitle": {"type": "text","analyzer":"ik_smart","search_analyzer":"ik_smart"},"updated_time": {"type": "date"}}}
    }
    

    name字段指定得是我们新的分词器

  13. 启动logstash重新同步数据
    
    cd /usr/local/logstash-6.4.3
    ./bin/logstash -f mysql.conf
  14. 测试代码
    @Overridepublic BaseResponse<List<ProductDto>> search(String name) {// 1.拼接查询条件BoolQueryBuilder builder = QueryBuilders.boolQuery();// 2.模糊查询name\subtitle\detail字段builder.must(QueryBuilders.multiMatchQuery(name, "name", "subtitle", "detail"));Pageable pageable = new QPageRequest(0, 5);// 3.调用ES接口查询Page<ProductEntity> page = productReposiory.search(builder, pageable);// 4.获取集合数据List<ProductEntity> content = page.getContent();// 5.将entity转换dtoMapperFactory mapperFactory = new DefaultMapperFactory.Builder().build();List<ProductDto> mapAsList = mapperFactory.getMapperFacade().mapAsList(content, ProductDto.class);return setResultSuccess(mapAsList);}

    地址: http://127.0.0.1:8500/search?name=huawei

     
    地址: http://127.0.0.1:8500/search?name=%E5%8D%8E%E4%B8%BA
     

  15. 这样实现了拼音和汉字得同样搜索!!!

Elasticsearch配置拼音分词和自定义分词器相关推荐

  1. JAVA使用es不分词_谈谈 Elasticsearch 分词和自定义分词

    初次接触 Elasticsearch 的同学经常会遇到分词相关的难题,比如如下这些场景: 1.为什么命名有包含搜索关键词的文档,但结果里面就没有相关文档呢? 2.我存进去的文档到底被分成哪些词(ter ...

  2. android sqlite 分词,sqlite3自定义分词器

    sqlite3通过使用fts3虚表支持全文搜索,默认支持simple和porter两种分词器,并提供了接口来自定义分词器.这里我们利用mmseg来构造自定义的中文分词器. 虽然sqlite在fts3_ ...

  3. 【lucene】lucene 分词 以及自定义分词器

    1.概述 分词器基本分为四类,SimpleAnalyzer,StopAnalyzer,WhitespaceAnalyzer,StandardAnalyzer. 2.Token 这里主要涉及 Token ...

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

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

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

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

  6. 从struts2拦截器到自定义拦截器

    http://www.cnblogs.com/withyou/p/3170440.html 拦截器可谓struts2的核心了,最基本的bean的注入就是通过默认的拦截器实现的,一般在struts2.x ...

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

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

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

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

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

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

最新文章

  1. ActiveMQ_Linux安装(一)
  2. HDLBits 系列(ending)此系列我的答案
  3. background:#e5eecc;
  4. js全选 复选框的问题
  5. 猜数字游戏的提示(UVa340)
  6. 英雄会在线编程题目(请大家不吝赐教)
  7. hdu 2363(最短路+枚举)
  8. CSS结构伪类选择器
  9. wpf 圆里面画斜线_用SolidWorks画一个腔体管,图很好画,图纸有点乱
  10. TableView Within Alert
  11. 再谈 最速下降法/梯度法/Steepest Descent
  12. java去除网页中的广告和导航等信息_**css+html纯css怎样去除导航子菜单中的默认背景?**...
  13. 57 spi电平转换的坑
  14. 使用QGIS实现城市空气质量指数(AQI)数据可视化
  15. “概率模型与计算机视觉” 林达华
  16. 安卓中的inflate方法
  17. Python画爱心树源码
  18. 为什么计算机连不上无线网络,笔记本无线连不上是什么原因_为什么笔记本电脑连不上wifi-win7之家...
  19. FinalShell 远程工具(即xshell,xftp,远程桌面连接一体)
  20. 算法竞赛入门经典 习题6-14

热门文章

  1. Android实现蓝牙(BlueTooth)设备检测连接
  2. C#通过函数名字符串执行相应的函数
  3. ​STM32家族介绍,覆盖STM32F、STM32H、STM32L全系列
  4. mongodb数据同步到elasticsearch的中间件,支持全量,增量,实时同步等多种同步情景。(syncs MongoDB to Elasticsearch in realtime) (Mong
  5. Windows Mobile 5.0 认知篇
  6. iOS中制作一张水印图片
  7. 神通数据库安装及使用手册
  8. 魅族16无信号服务器,魅族16信号差的解决办法
  9. Docker之maxscale容器实现mysql读写分离配置文件
  10. 在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口