Elasticsearch7 内置分词器的使用以及中文(IK)分词器的安装和使用

前言

 ES作为全文检索服务,势必要对原始的文本进行内容的拆分,然后才能够进行有效的索引对吧,而拆分原始内容到一个一个小的词或者说语音单元,这部分的功能呢是由ES的分词器去完成的呢,他本身就内置了许多的分词器,在安装和使用IK分词器之前先了解一下Elasticsearch内置的几个分词器。

一、ES常用内置分词器

  • standard - ES index默认分词器,按词切分,小写处理,

  • simple - 按照非字母切分(符号被过滤), 小写处理,会去除数字

  • whitespace  - 按照空格切分,不转小写

  • stop - 小写处理,停用词过滤(the,a,is)

  • keyword - 不分词,直接将输入当作输出

示例:

1、standard:支持中英文,中文会议单个字切割。他会将词汇单元转换成小写形式,并去除停用词和标点符号

POST _analyze
{
  "analyzer": "standard",
  "text": ["my name is 张某某 X"]
}

2、simple:首先会通过非字母字符来分割文本信息,然后将词汇单元统一为小写形式。该分析器会去掉数字类型的字符。中文原样输出,

 3、 whitespace:仅仅是去除空格,对字符没有lowcase化并且不对生成的词汇单元进行其他的规范化处理。

 

二、 IK分词器的安装

下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases在这上面有elasticsearch所对应版本的IK分词器以编译的包,可以在上面找到对应版本进行下载使用

1、下载:

wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.5.1/elasticsearch-analysis-ik-7.5.1.zip

2、在解压到elasticsearch/plugin/ik/文件夹中,ik文件夹需要自己建

unzip elasticsearch-analysis-ik-7.5.1.zip -d $ES_HOME/plugins/ik/

把$ES_HOME替换成你elasticsearch所在目录即可

3、重启elasticsearch后就可以用了

使用ik分词器:

创建索引时指定分词器:

PUT my_index
{
    "settings": {
        "analysis": {
            "analyzer": {
                "ik": {
                    "tokenizer": "ik_max_word"
                }
            }
        }
    },
    "mappings": {
        "properties": {
            "title": {
                "type": "text"
            },
            "content": {
                "type": "text",
                "analyzer": "ik_max_word"
            }
        }
    }
}

IK分词器示例:

1、ik_smart:会做最粗粒度的拆分

POST _analyze
{
  "analyzer": "ik_smart",
  "text": ["我是中国人"]
}

 2、ik_max_word:会将文本做最细粒度的拆分

POST _analyze
{
  "analyzer": "ik_max_word",
  "text": ["我是中国人"]
}

发布了17 篇原创文章 · 获赞 70 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/zzqaaasss/article/details/104223480
今日推荐