zoukankan      html  css  js  c++  java
  • Elasticsearch 建立ik中文分词器和自定义分词

    一、建立ik中文分词器

    1、下载ik中文分词器

    进入https://github.com/medcl/elasticsearch-analysis-ik

    使用第一种方式安装,进入https://github.com/medcl/elasticsearch-analysis-ik/releases

    选择版本7.4.2 。和ES7.4.2的版本保持一致。

     下载elasticsearch-analysis-ik-7.4.2.zip

    将下载的分词器放到 192.168.127.130 这台服务器的 /home/tools 路径下

    2、安装分词器

    解压 unzip  elasticsearch-analysis-ik-7.4.2.zip /usr/local/eleasticsearch-7.4.2/plugins/ik

    tar.gz 格式解压如下

     前提是ik这个文件夹存在。

    3、重启ES

    ps -ef | grep elasticsearch

    kill xxx

    切换成esuser用户

    cd /user/local/elasticsearch-7.4.2/bin 

    ./elasticsearch  -d

    这样中文分词器就安装成功了。

    4、测试中文分词器

     分析器 analyzer值为

    ik_max_word : 最细粒度拆分

    ik_smart : 最粗粒度拆分

    返回分词结果为:

    {
        "tokens": [
            {
                "token": "我",
                "start_offset": 0,
                "end_offset": 1,
                "type": "CN_CHAR",
                "position": 0
            },
            {
                "token": "喜欢吃",
                "start_offset": 1,
                "end_offset": 4,
                "type": "CN_WORD",
                "position": 1
            },
            {
                "token": "喜欢",
                "start_offset": 1,
                "end_offset": 3,
                "type": "CN_WORD",
                "position": 2
            },
            {
                "token": "吃",
                "start_offset": 3,
                "end_offset": 4,
                "type": "CN_CHAR",
                "position": 3
            },
            {
                "token": "苹果",
                "start_offset": 4,
                "end_offset": 6,
                "type": "CN_WORD",
                "position": 4
            }
        ]
    }  

    可以看出中文分词器已经有效果了。

    二、自定义中文词库

    1、如下图,对“我在中华学习网学习”进行分词

     返回结果

    {
        "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": 4,
                "type": "CN_WORD",
                "position": 2
            },
            {
                "token": "学习网",
                "start_offset": 4,
                "end_offset": 7,
                "type": "CN_WORD",
                "position": 3
            },
            {
                "token": "学习",
                "start_offset": 4,
                "end_offset": 6,
                "type": "CN_WORD",
                "position": 4
            },
            {
                "token": "网",
                "start_offset": 6,
                "end_offset": 7,
                "type": "CN_CHAR",
                "position": 5
            },
            {
                "token": "学习",
                "start_offset": 7,
                "end_offset": 9,
                "type": "CN_WORD",
                "position": 6
            }
        ]
    }  

    可以看到“中华学习网” 并没有做为一个分词。

    那么,如何将“中华学习网”作为一个词汇呢?

    进入ik插件  cd /usr/local/elasticsearch-7.4.2/plugins/ik/config

    vi IKAnalyzer.cfg.xml

     vi custom.doc

     然后保存。重启ES。

    2、测试自定义分词

     可以看到,自定义分词“中华学习网”已经生效了。

  • 相关阅读:
    [TJOI2019]大中锋的游乐场——最短路+DP
    [TJOI2019]甲苯先生的滚榜——非旋转treap
    [TJOI2019]甲苯先生的字符串——矩阵乘法+递推
    [TJOI2019]唱、跳、rap和篮球——NTT+生成函数+容斥
    [ZJOI2020]字符串
    Ubuntu 20.04 工作区小记
    2020省选犯傻记
    寒假到省选的一些笔记
    AtCoder tokiomarine2020 题解
    [CF1336E]Chiori and Doll Picking
  • 原文地址:https://www.cnblogs.com/linlf03/p/13328831.html
Copyright © 2011-2022 走看看