一、IK中文分词器

1.1 内置的标准分词器-分析英文

1、填写GET请求http://192.168.1.121:9200/_analyze, 分析英文。观察到每个词正常被分开

{
    "analyzer": "standard",
    "text": "My name is Jason Yin,  and I'm 18 years old !"
}

1.2 内置的标准分词器-分析中文并不友好

1、填写GET请求http://192.168.1.121:9200/_analyze, 分析中文。观察到每个字都被分开,而我们希望是分开词,例如“北京“

1.3 安装IK分词器

1、下载IK分词器

下载地址:https://github.com/medcl/elasticsearch-analysis-ik/archive/refs/tags/v7.17.3.zip

2、创建IK分词器目录

[root@elk121 ~]# mkdir /es/softwares/es7/elasticsearch-7.17.5/plugins/ik

3、将下载好的包上传到/es/softwares/es7/elasticsearch-7.17.5/plugins/ik目录下进行解压

[root@elk121 ~]# cd /es/softwares/es7/elasticsearch-7.17.5/plugins/ik
[root@elk121 ik]# unzip elasticsearch-analysis-ik-7.17.5.zip
[root@elk121 ik]# rm -f elasticsearch-analysis-ik-7.17.5.zip

4、重启服务

[root@elk121 ik]# systemctl restart es7

5、测试IK中文分词器

(1) 测试IK中文分词器-细粒度拆分

填写GET请求http://192.168.1.121:9200/_analyze, 分析中文。

{
    "analyzer": "ik_max_word",
    "text": "我爱北京天安门!"
}

(2) 测试IK中文分词器-粗粒度拆分

填写GET请求http://192.168.1.121:9200/_analyze, 分析中文。

{
    "analyzer": "ik_smart",
    "text": "我爱北京天安门!"
}

1.4 自定义IK分词器的字典

1、进入到IK分词器的插件安装目录

[root@elk121 ik]# cd /es/softwares/es7/elasticsearch-7.17.5/plugins/ik/config/

2、自定义字典

[root@elk121 config]# cat > youxi.dic <<'EOF'
德玛西亚
艾欧尼亚
亚索
上号
带你飞
贼6
EOF

3、加载自定义字典

修改第6行内容为如下:

[root@elk121 config]# [root@elk121 config]# vim IKAnalyzer.cfg.xml
…
…
<entry key="ext_dict">youxi.dic</entry>
…
…

4、重启ES集群

[root@elk121 config]# systemctl restart es7

5、测试分词器

填写GET请求http://192.168.1.121:9200/_analyze, 分析中文。

{
"analyzer": "ik_smart",
"text": "嗨,哥们! 上号,我德玛西亚和艾欧尼亚都有号! 我亚索贼6,肯定能带你飞!!!"
}

二、索引模板

2.1 什么是索引模板

官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/7.17/index-templates.html

索引模板是创建索引的一种方式。用户可以根据需求自定义对应的索引模板。

当数据写入指定索引时,如果该索引不存在,则根据索引名称匹配湘应索引模板的话,会根据模板的配置而建立索引。

索引模板仅对新创建的索引生效,对已经创建的索引是没有任何作用的。

2.2 查看索引模板

2.2.1 查看所有的索引模板

1、填写GET请求http://192.168.1.121:9200/_template, 查看所有的索引模板

2.2.2 查看单个索引模板

1、填写GET请求http://192.168.1.121:9200/_template/.monitoring-es, 查看单个索引模板.monitoring-es

2.3 创建/修改索引模板

2.3.1 创建/修改索引模板

1、填写POST请求http://192.168.1.121:9200/_template/es-template01,创建新的索引模板es-template01

{
    "aliases": {
        "DBA": {},
        "SRE": {},
        "K8S": {}
    },
    "index_patterns": [
        "es*"
    ],
    "settings": {
        "index": {
            "number_of_shards": 3,
            "number_of_replicas": 0
        }
    },
    "mappings": {
        "properties":{
            "ip_addr": {
                "type": "ip"
            },
            "access_time": {
                "type": "date"
            },
            "address": {
                "type" :"text"
            },
            "name": {
                "type": "keyword"
            }
        }
    }
}

注意:索引模板只对新的索引有影响,对之前创建的索引没有任何影响

2.3.2 创建索引(测试模板)

1、填写PUT请求192.168.1.121:9200/es-001,创建新的索引es-001

2、打开ES Head扩展程序查看结果,观察到套用模板,新创建的索引是3分片0副本并且带有三个别名DBA/SRE/K8S

2.3.3 查看索引(验证)

1、填写GET请求192.168.1.121:9200/es-001,查看索引

2.4 删除索引模板

1、填写DELETE请求http://192.168.1.121:9200/_template/es-template01,删除新的索引模板es-template01