zoukankan      html  css  js  c++  java
  • ElasticSerach7.6.0拼音分词器安装和使用

    第一步:安装ElasticSearch 7.6.0

    由于IK和ElasticSerach已经是编译好的,不需要编译,直接在安装解压修改配置文件即可

    详情请见另一篇安装博客:https://www.cnblogs.com/haolb123/p/14051580.html

     

    第二步:下载拼音分词器

    由于拼音分词器并非编译好的,需要用Maven package 进行打包,maven的下载和使用请百度。

    • 选择完毕版本,进行选择Zip包链接进行下载 

    下载到本地,进行解压,解压完毕之后发现是源码Maven工程,进行mvn packagemaster版本对应Es7.X,默认打包出来是7.7.0,我的es版本是7.6.0

    所以要修改C:UsersAdministratorDownloadselasticsearch-analysis-pinyin-masterelasticsearch-analysis-pinyin-masterpom.xml的文件。修改后如下:

     

    • 执行打包命令:mvn package

     

    • 打包完成后编译后的包在target/releases目录下的elasticsearch-analysis-pinyin-7.6.0.zip

     

    • 将编译好的zip包进行解压,进行拷贝,上传到ElasticSerach plugins的文件夹下

     

    • 重启ElasticSearchsystemctl restart elasticsearch.service

     

    第三步:测试拼音分词器

    • 创建索引

    1. PUT /medcl/
    2. {
    3.     "settings" : {
    4.         "analysis" : {
    5.             "analyzer" : {
    6.                 "pinyin_analyzer" : {
    7.                     "tokenizer" : "my_pinyin"
    8.                     }
    9.             },
    10.             "tokenizer" : {
    11.                 "my_pinyin" : {
    12.                     "type" : "pinyin",
    13.                     "keep_separate_first_letter" : false,
    14.                     "keep_full_pinyin" : true,
    15.                     "keep_original" : true,
    16.                     "limit_first_letter_length" : 16,
    17.                     "lowercase" : true,
    18.                     "remove_duplicated_term" : true
    19.                 }
    20.             }
    21.         }
    22.     }
    23. }
    • 测试分析器,分析一个中文名字

    1. GET /medcl/_analyze
    2. {
    3.   "text": ["郝利斌"],
    4.   "analyzer": "pinyin_analyzer"
    5. }

    返回查询结果

    • 创建映射

    1. POST /medcl/_mapping
    2. {
    3.   "properties": {
    4.     "name": {
    5.       "type": "keyword",
    6.       "fields": {
    7.         "pinyin": {
    8.           "type": "text",
    9.           "store": false,
    10.           "term_vector": "with_offsets",
    11.           "analyzer": "pinyin_analyzer",
    12.           "boost": 10
    13.         }
    14.       }
    15.     }
    16.   }
    17. }

     

    1. #添加单条数据
    2. POST /medcl/_create/andy
    3. {"name":"刘德华"}
    4.  
    5. #批量添加数据
    6. POST /medcl/_bulk
    7. {"index": {"_index": "medcl","_id": "1"}}
    8. {"name":"储之源"}
    9. {"index": {"_index": "medcl","_id": "2"}}
    10. {"name":"李根"}
    11. {"index": {"_index": "medcl","_id": "3"}}
    12. {"name":"赵阳"}
    13. {"index": {"_index": "medcl","_id": "4"}}
    14. {"name":"郝利斌"}
    15. {"index": {"_index": "medcl","_id": "5"}}
    16. {"name":"张旭"}
    17. {"index": {"_index": "medcl","_id": "6"}}
    18. {"name":"朱强"}
    19. {"index": {"_index": "medcl","_id": "7"}}
    20. {"name":"黄佳宁"}
    21. {"index": {"_index": "medcl","_id": "8"}}
    22. {"name":"袁晓军"}

     

    1. #根据条件查询
    2. GET /medcl/_search
    3. {
    4.   "query": {
    5.     "match": {
    6.       "name.pinyin": "yxj"
    7.     }
    8.   }
    9. }

    返回结果:

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    前端页面的防抖与节流
    vue3.0 响应式原理
    cssBEM命名规范及常用CSS class 命名
    vue2.x 响应式原理
    npm 相关命令
    Node之 fs
    Node 之 Buffer
    Node之path
    Node之process
    Node.js 如何处理 ES6 模块
  • 原文地址:https://www.cnblogs.com/haolb123/p/14109337.html
Copyright © 2011-2022 走看看