【Elasticsearch】利用kibana调整索引mapping结构
引言在初次创建索引后,索引结构一般都固定不变,但也难免会遇到需求更改而索引结构也需要有对应的调整。本篇博客将介绍如何利用kibana新增字段,并且初始化值。查看索引mapping结构首先,我们可以先通过kibana使用以下API查看某一索引的结构:GET /'index_name'/'index_type'/_mapping如果对kibana使用API有疑问,可以查看博客kibana安装与使用教程
·
引言
在初次创建索引后,索引结构一般都固定不变,但也难免会遇到需求更改而索引结构也需要有对应的调整。本篇博客将介绍如何利用kibana新增字段,并且初始化值。
查看索引mapping结构
首先,我们可以先通过kibana使用以下API查看某一索引的结构:
GET /'index_name'/'index_type'/_mapping
如果对kibana使用API有疑问,可以查看博客kibana安装与使用教程
注:API中的index_name和index_type为常量,对应索引名和索引类型。
修改索引mapping结构
一、新增字段
如果是新增字段,可以直接使用以下API:
PUT 'index_name'/_mapping/'index_type'
{
"properties": {
"field_name":{
"type": "long"
}
}
}
使用PUT请求,field_name为对应新增字段的名称,type为该字段的类型,如long、keyword等。
新增字段赋值
字段增加之后,我们可能需要初始化该字段的值,API如下:
POST /'index_name'/'index_type'/_update_by_query
{
"query": {
"match_all": {}
},
"script": {
"source": "if (ctx._source.type== null) {ctx._source.type= 0}"
}
}
通过以上方法,我们可以根据查询条件更新字段的值。
二、修改字段
由于Elasticsearch底层使用了lucene的原因,不支持对mapping的修改,可使用索引重建的方式,步骤如下:
1. 创建索引idx_v1并添加数据
#创建索引v1
PUT /idx_v1
#创建索引v1mapping结构
POST /idx_v1/_doc/_mapping
{
"properties": {
"id": {
"type": "long"
},
"name": {
"type": "text"
}
}
}
#给索引添加别名
POST /_aliases
{
"actions": [
{ "add": {
"alias": "idx_alias",
"index": "idx_v1"
}}
]
}
#索引v1添加数据
POST idx_v1/_doc
{
"id":1283239366077513729,
"name":"天天"
}
#查询v1mapping结构
GET /idx_v1/_doc/_mapping
现在想将v1中的id字段类型修改为keyword类型,我们可以新建一个索引,mapping结构id字段为keyword。
2. 创建索引idx_v2
#创建索引v2
PUT /idx_v2
#创建索引mapping结构
POST /idx_v2/_doc/_mapping
{
"properties": {
"id": {
"type": "keyword"
},
"name": {
"type": "text"
}
}
}
3. 使用reindex API,将旧索引数据导入新索引
POST _reindex
{
"source": {
"index": "idx_v1",
"type": "_doc"
},
"dest": {
"index": "idx_v2",
"type": "_doc"
}
}
4. 给新索引v2添加别名
POST /_aliases
{
"actions": [
{ "add": {
"alias": "idx_alias",
"index": "idx_v2"
}}
]
}
5. 将旧索引别名添加迁移到新索引请求:
POST /_aliases
{
"actions" : [
{ "remove" :
{ "index" : "idx_v1", "alias" : "item_alias" }
},
{ "add" :
{ "index" : "idx_v2", "alias" : "item_alias" }
}
]
}
6. 删除旧索引v1
DELETE /idx_v1
总结
修改索引mapping结构操作还是比较复杂的,所以在建立索引前需要考虑好mapping结构,以免引起不必要的麻烦。
点击阅读全文
更多推荐
活动日历
查看更多
直播时间 2025-02-26 16:00:00


直播时间 2025-01-08 16:30:00


直播时间 2024-12-11 16:30:00


直播时间 2024-11-27 16:30:00


直播时间 2024-11-21 16:30:00


所有评论(0)