./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.9.3/elasticsearch-analysis-ik-7.9.3.zip
1.2.2 测试
es 重启成功后,首先创建一个名为 test 的索引:
接下来,在该索引中进行分词测试:
1.2.3 自定义扩展词库
1.2.3.1 本地自定义
在 es/plugins/ik/config 目录下,新建 ext.dic 文件(文件名任意),在该文件中可以配置自定义的词库。
如果有多个词,换行写入新词即可。
然后在 es/plugins/ik/config/IKAnalyzer.cfg.xml 中配置扩展词典的位置:
1.2.3.2 远程词库
也可以配置远程词库,远程词库支持热更新(不用重启 es 就可以生效)。
热更新只需要提供一个接口,接口返回扩展词即可。
具体使用方式如下,新建一个 Spring Boot 项目,引入 Web 依赖即可。然后在 resources/stastic 目录下新建 ext.dic 文件,写入扩展词:
接下来,在 es/plugins/ik/config/IKAnalyzer.cfg.xml 文件中配置远程扩展词接口:
配置完成后,重启 es ,即可生效。
热更新,主要是响应头的 Last-Modified
或者 ETag
字段发生变化,ik 就会自动重新加载远程扩展辞典。
视频笔记,在公众号江南一点雨后台回复 elasticsearch04 获取下载链接。
微信公众号江南一点雨后台回复 elasticsearch05 下载本笔记。
启动一个 master 节点和两个 slave 节点进行测试(参考第二集的视频搭建)。
2.1 新建索引
2.1.1 通过 head 插件新建索引
在 head 插件中,选择 索引选项卡,然后点击新建索引。新建索引时,需要填入索引名称、分片数以及副本数。
索引创建成功后,如下图:
0、1、2、3、4 分别表示索引的分片,粗框表示主分片,细框表示副本(点一下框,通过 primary 属性可以查看是主分片还是副本)。.kibana 索引只有一个分片和一个副本,所以只有 0。
2.1.2 通过请求创建
可以通过 postman 发送请求,也可以通过 kibana 发送请求,由于 kibana 有提示,所以这里采用 kibana。
创建索引请求:
PUT book
创建成功后,可以查看索引信息:
需要注意两点:
- 索引名称不能有大写字母
- 索引名是唯一的,不能重复,重复创建会出错
2.2 更新索引
索引创建好之后,可以修改其属性。
例如修改索引的副本数:
PUT book/_settings
{
“number_of_replicas”: 2
}
修改成功后,如下:
更新分片数也是一样。
2.3 修改索引的读写权限
索引创建成功后,可以向索引中写入文档:
PUT book/_doc/1
{
“title”:“三国演义”
}
写入成功后,可以在 head 插件中查看:
默认情况下,索引是具备读写权限的,当然这个读写权限可以关闭。
例如,关闭索引的写权限:
PUT book/_settings
{
“blocks.write”: true
}
关闭之后,就无法添加文档了。关闭了写权限之后,如果想要再次打开,方式如下:
PUT book/_settings
{
“blocks.write”: false
}
其他类似的权限有:
-
blocks.write
-
blocks.read
-
blocks.read_only
2.4 查看索引
head 插件查看方式如下:
请求查看方式如下:
GET book/_settings
也可以同时查看多个索引信息:
GET book,test/_settings
也可以查看所有索引信息:
GET _all/_settings
2.5 删除索引
head 插件可以删除索引:
请求删除如下:
DELETE test
删除一个不存在的索引会报错。
5.6 索引打开/关闭
关闭索引:
POST book/_close
打开索引:
POST book/_open
当然,可以同时关闭/打开多个索引,多个索引用 , 隔开,或者直接使用 _all 代表所有索引。
2.7 复制索引
索引复制,只会复制数据,不会复制索引配置。
POST _reindex
{
“source”: {“index”:“book”},
“dest”: {“index”:“book_new”}
}
复制的时候,可以添加查询条件。
2.8 索引别名
可以为索引创建别名,如果这个别名是唯一的,该别名可以代替索引名称。
POST /_aliases
{
“actions”: [
{
“add”: {
“index”: “book”,
“alias”: “book_alias”
}
}
]
}
添加结果如下:
将 add 改为 remove 就表示移除别名:
最后
各位读者,由于本篇幅度过长,为了避免影响阅读体验,下面我就大概概括了整理了
这个别名是唯一的,该别名可以代替索引名称。
POST /_aliases
{
“actions”: [
{
“add”: {
“index”: “book”,
“alias”: “book_alias”
}
}
]
}
添加结果如下:
将 add 改为 remove 就表示移除别名:
最后
各位读者,由于本篇幅度过长,为了避免影响阅读体验,下面我就大概概括了整理了
[外链图片转存中…(img-vSokXZhk-1716573772804)]
[外链图片转存中…(img-Owl6h33X-1716573772804)]
[外链图片转存中…(img-CttNjWhT-1716573772805)]
[外链图片转存中…(img-61a3f146-1716573772805)]