Elasticsearch实战——索引管理
程序员文章站
2022-03-05 10:00:38
...
Elasticsearch实战——索引管理
1. 索引创建
PUT index
{
"settings":{
"number_of_shards":3,
"number_of_replicas":1
},
"mappings":{
"properties":{
"title":{
"type":"text",
"analyzer":"ik_max_words",
"search_analyzer":"ik_smart"
},
"tag":{
"type":"keyword"
}
}
}
}
2. 添加字段
PUT index/_mapping
{
"properties":{
"indexAt":{
"type":"date",
"format":"yyyy-MM-dd HH:mm:ss"
}
}
}
3. 删除索引
DELETE index
4. 打开/关闭索引
4.1 打开索引
POST index/_open
4.2 关闭索引
POST index/_close
5. 重建索引
POST /_reindex
{
"source":{
"index":"sourceIndexName",
"query":{
},
"sort":{
"fieldName":"asc/desc"
},
"size":5000,
"_source":[
"fieldName1",
"fieldName2",
"fieldName3",
]
},
"dest":{
"index":"destIndexName",
"version_type":"internal(default)/external",
"op_type":"create"
}
}
说明:
-
version_type
-
internal
:表示迁移全部数据,且完全覆盖冲突文档(即使目标文档版本新于源索引文档)。 -
external
:表示迁移全部数据,且更新旧版本冲突文档。
-
-
op_type
:-
create
:表示仅创建目标索引不存在的文档。
-
6. 别名管理
6.1 添加别名
POST /_aliases
{
"actions":[
{
"add":{
"index":"indexName1",
"alias":"aliasName"
}
},
{
"add":{
"index":"indexName2",
"alias":"aliasName"
}
}
]
}
6.2 删除别名
POST /_aliases
{
"actions":[
{
"remove":{
"index":"indexName",
"alias":"aliasName"
}
}
]
}
6.3 重命名
POST /_aliases
{
"actions":[
{
"remove":{
"index":"indexName",
"alias":"aliasName1"
}
},
{
"add":{
"index":"indexName",
"alias":"aliasName2"
}
}
]
}
7. 合并索引
POST index/_forcemerge?max_num_segments=1
8. 缩小索引
8.1 先把索引设置为只读
PUT source_index/_setting
{
"settings":{
"index.routing.allocation.require._name":"node-1",
"index.blocks.write":true
}
}
8.2 执行shrink
POST source_index/_shrink/target_index
{
"settings":{
"index.number_of_replicas":1,
"index.number_of_shards":1,
"index.codec":"best_compression"
}
}
推荐阅读
-
Spring Boot与Kotlin 整合全文搜索引擎Elasticsearch的示例代码
-
MySQL索引及优化实战教程
-
Elasticsearch索引增量统计及定时邮件实现
-
Elasticsearch实战 | 必要的时候,还得空间换时间!
-
干货 |《从Lucene到Elasticsearch全文检索实战》拆解实践
-
Spring Boot与Kotlin 整合全文搜索引擎Elasticsearch的示例代码
-
.NET Core实战项目之CMS 第八章 设计篇-内容管理极简设计全过程
-
ElasticSearch实战系列三: ElasticSearch的JAVA API使用教程
-
Elasticsearch.Net使用教程 MVC4图书管理系统(2)
-
【C++并发实战】(二)线程管理