zoukankan      html  css  js  c++  java
  • Elasticsearch 7.x

    一、安装IK分词器

    Elasticsearch也需要安装IK分析器以实现对中文更好的分词支持。

    去Github下载最新版elasticsearch-ik

    https://github.com/medcl/elasticsearch-analysis-ik/releases

    将ik文件夹放在elasticsearch/plugins目录下,重启elasticsearch。

    Console控制台输出:

    [2019-09-04T08:50:23,395][INFO ][o.e.p.PluginsService ] [THINKPAD-T460P] loaded plugin [analysis-ik]

    二、测试分词效果

    IK分词器有两种分词模式:ik_max_word和ik_smart模式。

    1、ik_max_word

    会将文本做最细粒度的拆分,比如会将“中华人民共和国人民大会堂”拆分为“中华人民共和国、中华人民、中华、华人、人民共和国、人民、共和国、大会堂、大会、会堂等词语。

    2、ik_smart

    会做最粗粒度的拆分,比如会将“中华人民共和国人民大会堂”拆分为中华人民共和国、人民大会堂。

    测试两种分词模式的效果。分词查询要用GET、POST请求,需要把请求参数写在body中,且需要JSON格式。

    发送:post localhost:9200/_analyze

    (1)测试ik_max_word

    POST _analyze
    
    {
    
    "analyzer": "ik_max_word",
    
    "text":"中华人民共和国人民大会堂"
    
    }

     

     (2)测试ik_smart

    POST _analyze
    
    {
    
    "analyzer":"ik_smart",
    
    "text": "中华人民共和国人民大会堂"
    
    }

    网上关于两种分词器使用的最佳实践是:索引时用ik_max_word,在搜索时用ik_smart。

    即:索引时最大化的将文章内容分词,搜索时更精确的搜索到想要的结果。

    不过,需要注意的是:ik_smart 分词结果并不是 ik_max_word的子集。这样,在使用ik_max_word 建索引,用ik_smart 搜索时,有可能结果匹配不上,所以这是两种不同类型的分词结果,建议还是不要混用。

    下面测试【5号电池】,在两种分词模式下的输出结果。

     

    三、扩展词典

    在elasticsearch/plugins/ik/config下新建my.dic文件,在my.dic中写入想要分词识别的文字;修改IKAnalyzer.cfg.xml文件,在<entry key="ext_dict">中指定my.dic。

    <properties>
    
    <comment>IK Analyzer 扩展配置</comment>
    
    <!--用户可以在这里配置自己的扩展字典 -->
    
    <entry key="ext_dict">my.dic</entry>
    
    <!--用户可以在这里配置自己的扩展停止词字典-->
    
    <entry key="ext_stopwords"></entry>
    
    <!--用户可以在这里配置远程扩展字典 -->
    
    <!-- <entry key="remote_ext_dict">words_location</entry> -->
    
    <!--用户可以在这里配置远程扩展停止词字典-->
    
    <!-- <entry key="remote_ext_stopwords">words_location</entry> -->
    
    </properties>

    重启elasticsearch即可看到分词效果。

  • 相关阅读:
    【数据结构】线性表&&顺序表详解和代码实例
    【智能算法】超详细的遗传算法(Genetic Algorithm)解析和TSP求解代码详解
    【智能算法】用模拟退火(SA, Simulated Annealing)算法解决旅行商问题 (TSP, Traveling Salesman Problem)
    【智能算法】迭代局部搜索(Iterated Local Search, ILS)详解
    10. js时间格式转换
    2. 解决svn working copy locked问题
    1. easyui tree 初始化的两种方式
    10. js截取最后一个斜杠后面的字符串
    2. apache整合tomcat部署集群
    1. apache如何启动
  • 原文地址:https://www.cnblogs.com/ilovepython/p/11650139.html
Copyright © 2011-2022 走看看