linux下Elasticsearch插件安装

摘要

  • 本文介绍如何在linux为Elasticsearch安装插件

  • Elasticsearch版本8.17.3

安装Elasticsearch核心库插件

  • 以安装 analysis-icu 这个分词插件为例

1
2
3
# 进入Elasticsearch安装目录,插件的安装路径在 plugins 目录下
# 安装插件
bin/elasticsearch-plugin install analysis-icu
  • 安装或卸载插件后,需要重启Elasticsearch服务

安装其它来源的插件

1
2
3
4
5
6
7
8
9
10
# 1.基于url安装插件
bin/elasticsearch-plugin install https://release.infinilabs.com/analysis-ik/stable/elasticsearch-analysis-ik-8.17.3.zip

# 2.基于本地文件安装插件,我们可以先将插件下载的本地目录
wget https://release.infinilabs.com/analysis-ik/stable/elasticsearch-analysis-ik-8.17.3.zip -P /tmp/
bin/elasticsearch-plugin install file:///tmp/elasticsearch-analysis-ik-8.17.3.zip

# 3.可以将下载好的包解压到plugins目录下,然后重启Elasticsearch服务
mkdir /usr/local/elasticsearch/elasticsearch-8.17.3/plugins/analysis-ik
unzip elasticsearch-analysis-ik-8.17.3.zip -d /usr/local/elasticsearch/elasticsearch-8.17.3/plugins/analysis-ik

查看和卸载插件

1
2
3
4
5
6
7
# 列出所有插件
bin/elasticsearch-plugin list
# 卸载插件
bin/elasticsearch-plugin remove analysis-ik

# 通过curl命令查看插件信息
curl -u elastic:123456 -k https://localhost:9200/_cat/plugins?v
  • 安装或卸载插件后,需要重启Elasticsearch服务

analysis-ik 中文分词插件的使用

  • 测试分词效果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#ES的默认分词器是standard,会单字拆分
POST _analyze
{
"analyzer": "standard",
"text": "中华人民共和国"
}

#analysis-ik的ik_smart分词器:会做最粗粒度的拆
POST _analyze
{
"analyzer": "ik_smart",
"text": "中华人民共和国"
}

#analysis-ik的ik_max_word分词器:会将文本做最细粒度的拆分
POST _analyze
{
"analyzer": "ik_max_word",
"text": "中华人民共和国"
}
  • 配置索引的分词器

1
2
3
4
5
6
7
8
9
10
11
# 创建索引,并指定默认分词器为ik_max_word
PUT /test_index
{
"settings" : {
"index" : {
"analysis.analyzer.default.type": "ik_max_word"
}
}
}
# 查看索引setting信息
GET /test_index/_settings
  • 配置索引字段的分词器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#创建索引
PUT /index
# 指定content字段使用ik分词器
POST /index/_mapping
{
"properties": {
"content": {
"type": "text",
"analyzer": "ik_max_word",
"search_analyzer": "ik_smart"
}
}
}

#索引文档,也就是插入文档
POST /index/_create/1
{"content":"美国留给伊拉克的是个烂摊子吗"}

POST /index/_create/2
{"content":"公安部:各地校车将享最高路权"}

POST /index/_create/3
{"content":"中韩渔警冲突调查:韩警平均每天扣1艘中国渔船"}

POST /index/_create/4
{"content":"中国驻洛杉矶领事馆遭亚裔男子枪击 嫌犯已自首"}

#带高亮的查询
POST /index/_search
{
"query": {
"match": {
"content": "中国"
}
},
"highlight": {
"pre_tags": [
"<tag1>",
"<tag2>"
],
"post_tags": [
"</tag1>",
"</tag2>"
],
"fields": {
"content": {}
}
}
}