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、测试自定义分词

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

  • 相关阅读:
    2008 server 备份
    IBM公共文档库javascript
    javascript 删除节点
    鼠标onfocus或onblur效果
    jquery绿色版dreamweaver提示
    修复IE6下 25+ Bugs
    parentNode, removeChild, nextSibling, firstChild的练习
    近期技术讨论贴(持续更新:1210)
    png图片(有含有透明)在IE6中为什么不透明了
    浅谈javascript面向对象编程
  • 原文地址:https://www.cnblogs.com/linlf03/p/13328831.html
Copyright © 2011-2022 走看看