关于elasticsearch:elasticsearch-添加新字段

44次阅读

共计 2095 个字符,预计需要花费 6 分钟才能阅读完成。

在应用 ES 的时候,给原有 index 的增加、删除、批改等操作都是比拟常见的景象。因而,记录一些罕用的用法对咱们开发效率将有很大晋升。

后面的文章曾经介绍了如何创立 ES 索引的,本次实例讲持续应用应用 datacube_live 索引来做演示。

为了不便观看,依然将 datacube_live 的现有构造展示进去,本次用来演示在 datacube_live 增加 is_del 字段,来给 es 数据做软删除标记,将 is_del 类型定义为 boolean 类型。

1. 获取 datacube_live 以后构造体:

GET http://xxxx:9200/datacube_live/_mapping

{
    "datacube_live": {
        "mappings": {
            "properties": {
                "create_at": {"type": "keyword"},
                "creator_id": {"type": "keyword"},
                "goods_list": {
                    "type": "nested",
                    "properties": {
                        "activity_type": {"type": "keyword"},
                        "area_ids": {"type": "keyword"},
                        "category_id": {"type": "keyword"},
                        "goods_id": {"type": "keyword"},
                        "goods_name": {"type": "text"},
                        "lecture_type": {"type": "keyword"},
                        "sku_code": {"type": "keyword"}
                    }
                },
                "is_callback": {"type": "boolean"},
                "is_empty": {"type": "boolean"},
                "is_pal_15": {"type": "boolean"},
                "live_date": {"type": "keyword"},
                "live_start_time": {"type": "keyword"},
                "push_type": {"type": "keyword"},
                "room_id": {"type": "keyword"},
                "room_name": {"type": "text"},
                "shop_ids": {"type": "keyword"}
            }
        }
    }
}

2. 定义 is_del 类型

在定义 is_del 类型的时候,须要将其放入 properties 属性当中去,构造如下所示。

{
    "properties": {
        "is_del": {"type": "boolean"}
    }
}

3. 将定义的 is_del 字段增加至 datacube_live 构造体当中去。

调用 ES 的 http://xxxx:9200/datacube_liv… 接口,批改构造体。

PUT http://xxxx:9200/datacube_live/_mapping

{
    "properties": {
        "is_del": {"type": "boolean"}
    }
}

4. 验证构造体

GET http://xxxx:9200/datacube_live/_mapping

{
    "datacube_live": {
        "mappings": {
            "properties": {
                "create_at": {"type": "keyword"},
                "creator_id": {"type": "keyword"},
                "goods_list": {
                    "type": "nested",
                    "properties": {
                        "activity_type": {"type": "keyword"},
                        "area_ids": {"type": "keyword"},
                        "category_id": {"type": "keyword"},
                        "goods_id": {"type": "keyword"},
                        "goods_name": {"type": "text"},
                        "lecture_type": {"type": "keyword"},
                        "sku_code": {"type": "keyword"}
                    }
                },
                "is_callback": {"type": "boolean"},
                "is_del": {"type": "boolean"},
                "is_empty": {"type": "boolean"},
                "is_pal_15": {"type": "boolean"},
                "live_date": {"type": "keyword"},
                "live_start_time": {"type": "keyword"},
                "push_type": {"type": "keyword"},
                "room_id": {"type": "keyword"},
                "room_name": {"type": "text"},
                "shop_ids": {"type": "keyword"}
            }
        }
    }
}

原有 datacube_live 的构造体增加了 is_del 类型,如下图所示。

到这里只能阐明 is_del 新增字段增加胜利了,此时依然不能阐明工作就实现了。如果当初就去查问 datacube_live 数据的话,目前依然没有 is_del 属性,须要对 datacube_live 进行数据更新操作,之后才阐明实现整个字段增加。

正文完
 0