批量修改elastic text类型字段

# -*- coding:utf-8 -*-
__auther__ = "光叶水青冈"

import requests, json


def get_index(full_elastic_url):
    return json.loads(requests.get(full_elastic_url + "/_mapping").content.decode())


def repalce(url,options=None):
    data = get_index(url)
    for da in data:
        # 索引修改
        if options:
            if options == str(da):
                fields = data.get(da)['mappings']['properties']
                cont = 1
                for field in fields:
                    tp = fields.get(field)
                    if tp.get("type") == "text":
                        Data = {"properties": {
                            "{}".format(field): {
                                "type": "text",
                                "fields": {"keyword": {"type": "keyword",
                                                       "ignore_above": 256
                                                       }
                                           },
                                "fielddata": True
                            }
                        }
                        }
                        HEAD = {
                            "Content-Type": "application/json"
                        }
                        result = requests.put(url=url + da + "/_mapping/", data=json.dumps(Data),
                                              headers=HEAD).content.decode()
                        print("完成{}的第{}个text字段修改‘{}’".format(str(da),cont, field),result)
                        cont += 1
                    pass



if __name__ == '__main__':
    """
    批量修改elastic text类型字段
    # """
    url = "http://*.*.*.*:9200"
    repalce(url,"***-pro-2020")
    repalce(url,"******-pro-2020")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值