美文网首页
Elasticsearch的分词

Elasticsearch的分词

作者: Qihang | 来源:发表于2021-10-14 09:56 被阅读0次

    ES在创建倒排索引时需要对文档分词;在搜索时,需要对用户输入内容分词。但默认的分词规则对中文处理并不友好。处理中文分词,一般会使用IK分词器

    ik分词器安装

    1. 点击下载
    2. 进入elasticsearch-7.15.0\plugins目录,新建ik文件夹,把下载文件解压进去
    3. 重启ES

    重启时遇到ik和ES版本不一致的错误:

    Plugin [analysis-ik] was built for Elasticsearch version 7.14.2 but version 7.15.0 is running
    

    修改ik分词器的默认ES版本
    打开elasticsearch-7.15.0\plugins\ik\plugin-descriptor.properties文件

    修改成es对应的版本
    elasticsearch.version=7.15.0
    

    ik分词器包含两种模式

    • ik_smart:最少切分,粗粒度
    • ik_max_word:最细切分,细粒度
    POST /_analyze
    {
      "analyzer": "ik_smart",
      "text": "我是中国人"
    }
    

    使用ik_samrt分词,中国人划分为一个分词

    {
      "tokens" : [
        {
          "token" : "我",
          "start_offset" : 0,
          "end_offset" : 1,
          "type" : "CN_CHAR",
          "position" : 0
        },
        {
          "token" : "是",
          "start_offset" : 1,
          "end_offset" : 2,
          "type" : "CN_CHAR",
          "position" : 1
        },
        {
          "token" : "中国人",
          "start_offset" : 2,
          "end_offset" : 5,
          "type" : "CN_WORD",
          "position" : 2
        }
      ]
    }
    

    ik分词拓展

    要拓展ik分词器的词库,只需要修改一个ik分词器目录中的config目录中的IkAnalyzer.cfg.xml文件:

    <comment>IK Analyzer 扩展配置</comment>
    <!--用户可以在这里配置自己的扩展字典 -->
    <entry key="ext_dict">ext.dic</entry>
    <!--用户可以在这里配置自己的扩展停止词字典-->
    <entry key="ext_stopwords">stopword.dic</entry>
    

    elasticsearch-7.15.0\plugins\ik\config目录

    1. 新增ext.dic加入分词内容
      例如:豪弘集团
    2. 新增stopword.dic加入过滤分词
      例如:视察
    3. 重启ES
      请求
    POST _analyze
    {
      "analyzer": "ik_smart",
      "text": "视察豪弘集团"
    }
    

    加入分词后的响应

    {
      "tokens" : [
        {
          "token" : "豪弘集团",
          "start_offset" : 5,
          "end_offset" : 9,
          "type" : "CN_WORD",
          "position" : 3
        }
      ]
    }
    

    当我们添加了扩展分词,豪弘集团,变成了一个分词;视察没了

    相关文章

      网友评论

          本文标题:Elasticsearch的分词

          本文链接:https://www.haomeiwen.com/subject/gkweoltx.html