批量创建ES索引

7.x

from elasticsearch import Elasticsearch# 配置 Elasticsearch 连接
# 替换为你的 Elasticsearch 地址、端口、用户名和密码
es = Elasticsearch(['http://10.10.x.x:43885'],basic_auth=('admin', 'XN272G9THEAPYD5N5QORX3PB1TSQELLB')
)# # 测试连接
# try:
#     # 尝试获取集群的健康状态
#     health = es.cluster.health()
#     print("集群健康状态:")
#     print(f"  集群名称: {health.get('cluster_name')}")
#     print(f"  状态: {health.get('status')}")
#     print(f"  节点数量: {health.get('number_of_nodes')}")
#     print(f"  数据节点数量: {health.get('number_of_data_nodes')}")
#     print(f"  活跃主分片: {health.get('active_primary_shards')}")
#     print(f"  活跃分片: {health.get('active_shards')}")
#     print(f"  初始化中分片: {health.get('initializing_shards')}")
#     print(f"  未分配分片: {health.get('unassigned_shards')}")
#     print(f"  挂起的未分配分片: {health.get('delayed_unassigned_shards')}")
#     print(f"  待处理任务数: {health.get('number_of_pending_tasks')}")
#     print(f"  活跃分片百分比: {health.get('active_shards_percent_as_number')}%")
# except Exception as e:
#     print(f"连接或查询失败: {e}")# 批量创建索引并设置每个索引的分片数为 2
try:for i in range(1000, 2000):  # 创建x个索引index_name = f"your_index_{i}"settings = {"settings": {"number_of_shards": 2,  # 设置2个分片"number_of_replicas": 1  # 可根据需要设置副本数}}response = es.indices.create(index=index_name, body=settings)# print(f"\n创建索引 '{index_name}' 结果:")# print(response)
except Exception as e:print(f"创建索引失败: {e}")

6.x

cluster.max_shards_per_node是不是在6.x版本限制不住呢???

在这里插入图片描述

在这里插入图片描述

from elasticsearch import Elasticsearches = Elasticsearch(['http://10.10.x.x:30519'],headers={"Content-Type": "application/json"}  # 强制指定 Content-Type 为 application/json
)# 创建索引
try:for i in range(2000, 3000):  # 创建1000个索引index_name = f"your_index_{i}"settings = {"settings": {"number_of_shards": 2,  # 设置2个分片"number_of_replicas": 1  # 可根据需要设置副本数}}response = es.indices.create(index=index_name, body=settings)print(response)  # 打印响应信息
except Exception as e:print(f"创建索引失败: {e}")

根据你提供的错误信息:

ApiError(406, 'Content-Type header [application/vnd.elasticsearch+json; compatible-with=8] is not supported', 'Content-Type header [application/vnd.elasticsearch+json; compatible-with=8] is not supported')

这是由于 Elasticsearch 版本Elasticsearch Python 客户端 之间的兼容性问题。具体来说,你可能正在使用一个与 Elasticsearch 版本不兼容的客户端,或者请求的 Content-Type 头部不符合目标 Elasticsearch 集群的要求。

解决方案:

1. 确认 Elasticsearch 版本
  • 确保你连接的 Elasticsearch 集群版本与你所使用的 Elasticsearch Python 客户端版本兼容。
  • 根据错误消息,似乎你的集群可能是基于 Elasticsearch 8.x 版本。你可以通过以下命令检查集群版本:
    curl -X GET "http://10.10.180.211:30519/_cluster/health?pretty"
    
    该命令会返回 Elasticsearch 集群的版本和健康状态等信息。
2. 更新 Elasticsearch Python 客户端版本
  • 确保你使用的是适用于 Elasticsearch 8.x 的 Python 客户端版本。如果你的集群是 Elasticsearch 8.x,使用较老的客户端(例如针对 7.x 版本的客户端)可能会导致此类错误。
  • 更新 Elasticsearch Python 客户端:
    pip install --upgrade elasticsearch
    
3. 指定正确的 Content-Type
  • 从错误信息来看,问题可能与请求的 Content-Type 头部有关。Elasticsearch 8.x 版本可能期望不同的 Content-Type 头部。

  • 你可以尝试通过 headers 参数手动指定请求的 Content-Type。例如:

    from elasticsearch import Elasticsearches = Elasticsearch(['http://10.10.180.211:30519'],headers={"Content-Type": "application/json"}  # 强制指定 Content-Type 为 application/json
    )# 创建索引
    try:for i in range(1000, 2000):  # 创建1000个索引index_name = f"your_index_{i}"settings = {"settings": {"number_of_shards": 2,  # 设置2个分片"number_of_replicas": 1  # 可根据需要设置副本数}}response = es.indices.create(index=index_name, body=settings)
    except Exception as e:print(f"创建索引失败: {e}")
    
4. 更新 Elasticsearch 客户端库的版本
  • 如果你已经确认 Elasticsearch 是 8.x 版本,并且使用了支持的客户端库版本,但仍然出现问题,你可以尝试将客户端库更新到最新版本。
    pip install elasticsearch==8.x  # 确保安装 8.x 版本的 Elasticsearch 客户端
    

pip3 install elasticsearch==6.8.2

5. 验证请求和响应
  • 如果问题依然存在,你可以通过打印响应并调试 requests 来验证发送的 HTTP 请求和 Elasticsearch 服务器返回的响应。例如:

    response = es.indices.create(index=index_name, body=settings)
    print(response)  # 打印响应信息
    
总结:
  • 确保你的 Python 客户端和 Elasticsearch 版本兼容,特别是在升级到 Elasticsearch 8.x 后,必须使用相应版本的 Python 客户端。
  • 尝试手动设置请求的 Content-Type 头部,确保其符合 Elasticsearch 8.x 的要求。
  • 通过更新客户端和检查日志,确保所有配置都是正确的。

如果以上方法仍然无法解决问题,请提供更多的详细信息,包括 Elasticsearch 集群的版本和你使用的客户端版本,这样我可以帮助你进一步定位问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/69115.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大厂案例——腾讯蓝鲸DevOps类应用的设计与实践

蓝鲸体系架构图 蓝鲸CICD应用功能架构 降低DEVOPS门槛—开发者中心 CICD应用需要的后台服务 系列阅读 12306亿级流量架构分析(史上最全)实现电商平台从业务到架构的治理体系基于主数据驱动的数据治理什么时候需要分表分库?-CSDN博客

React和Vue有什么区别,如何选择?

React和Vue有什么区别,如何选择? React 和 Vue 是当前最受欢迎的前端框架之一,两者在开发者中都有极高的声誉。它们都旨在帮助开发人员构建用户界面,但在实现方式和适用场景上有所不同。如果你正考虑在项目中选择 React 或 Vue&a…

uart、iic、spi通信总线

一、uart uart一种异步串行通信协议,用于在两个设备之间传输数据。它将数据按位发送,不需要时钟信号进行同步。在uart通信中,数据通过两根线路传输:发送线(TX)和接收线(RX)。它主要用…

LMI Gocator GO_SDK VS2019引用配置

LMI SDK在VS2019中的引用是真的坑爹,总结一下经验,希望后来的人能少走弯路.大致内容如下: (1) 环境变量 (2)C/C 附加包含目录 E:\GWQ\Gocator\GO_SDK\Gocator\GoSdk E:\GWQ\Gocator\GO_SDK\Platform\kApi (3&#…

QT QTableWidget控件 全面详解

本系列文章全面的介绍了QT中的57种控件的使用方法以及示例,包括 Button(PushButton、toolButton、radioButton、checkBox、commandLinkButton、buttonBox)、Layouts(verticalLayout、horizontalLayout、gridLayout、formLayout)、Spacers(verticalSpacer、horizontalSpacer)、…

C# OpenCV机器视觉:红外体温检测

在一个骄阳似火的夏日,全球却被一场突如其来的疫情阴霾笼罩。阿强所在的小镇,平日里熙熙攘攘的街道变得冷冷清清,人们戴着口罩,行色匆匆,眼神中满是对病毒的恐惧。阿强作为镇上小有名气的科技达人,看着这一…

立创开发板入门ESP32C3第八课 修改AI大模型接口为deepseek3接口

#原代码用的AI模型是minimax的API接口,现在试着改成最热门的deepseek3接口。# 首先按理解所得,在main文件夹下,有minimax.c和minimax.h, 它们是这个API接口的头文件和实现文件,然后在main.c中被调用。所以我们一步步更改。 申请…

2025.1.21——六、BUU XSS COURSE 1 XSS漏洞|XSS平台搭建

题目来源:buuctf BUU XSS COURSE 1 目录 一、打开靶机,整理信息 二、解题思路 step 1:输入框尝试一下 step 2:开始xss注入 step 3:搭建平台 step 4:利用管理员cookie访问地址 三、小结 二编&#…

操作无法完成,因为文件已经在Electronic Team Virtual Serial Port Driver Service中打开

报错 操作无法完成,因为文件已经在Electronic Team Virtual Serial Port Driver Service中打开 现象 这个exe文件无法删除 解决办法 按下WinR, 找到Electronic Team Virtual Serial Port Driver Service,右击停止. 再次尝试删除,发现这个exe文件成功删除!

单值二叉树(C语言详解版)

一、摘要 今天要讲的是leetcode单值二叉树,这里用到的C语言,主要提供的是思路,大家看了我的思路之后可以点击链接自己试一下。 二、题目简介 如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。 只有给定的树是单…

【多表查询】

目录 一. 一对多二. 一对一 and 多对多三. 多表设计案例四. 多表查询4.1 概述4.2 内连接与外连接4.3 子查询4.4 案例 \quad 一. 一对多 \quad 删除外键 \quad 二. 一对一 and 多对多 \quad \quad 三. 多表设计案例 \quad 一个员工对应多个工作经历 \quad 四. 多表查询 \quad \q…

[Dialog屏幕开发] Table Control 列数据操作

阅读该篇文章之前,可先阅读下述资料 [Dialog屏幕开发] 屏幕绘制(Table Control控件)https://blog.csdn.net/Hudas/article/details/145314623?spm1001.2014.3001.5501https://blog.csdn.net/Hudas/article/details/145314623?spm1001.2014.3001.5501上篇文章我们…

Arduino大师练成手册 -- 读取DHT11

要在 Arduino 上控制 DHT11 温湿度传感器,你可以按照以下步骤进行: 硬件连接: 将 DHT11 的 VCC 引脚连接到 Arduino 的 5V 引脚。 将 DHT11 的 GND 引脚连接到 Arduino 的 GND 引脚。 将 DHT11 的 DATA 引脚连接到 Arduino 的数字引脚&am…

leetcode刷题记录(八十九)——35. 搜索插入位置

(一)问题描述 35. 搜索插入位置 - 力扣(LeetCode)35. 搜索插入位置 - 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位…

渐变颜色怎么调?

渐变颜色的调整是设计中非常重要的一部分,尤其是在创建具有视觉吸引力和深度感的设计作品时。以下是一些在不同设计软件中调整渐变颜色的详细步骤和技巧: 一、Adobe Photoshop 1. 创建渐变 打开渐变工具: 选择工具栏中的“渐变工具”&#x…

安装wxFormBuilder

1. 网址:GitHub - wxFormBuilder/wxFormBuilder: A wxWidgets GUI Builder 2. 安装MSYS2 MSYS2可以在GitHub的内容中找到,这个版本是32位64位的 3. 在程序中打开MINGW64 shell 4. 在MSYS2 MINGW64 shell中输入 pacman -Syu pacman -S ${MINGW_PACKAGE…

在 Windows 系统上,将 Ubuntu 从 C 盘 迁移到 D 盘

在 Windows 系统上,如果你使用的是 WSL(Windows Subsystem for Linux)并安装了 Ubuntu,你可以将 Ubuntu 从 C 盘 迁移到 D 盘。迁移过程涉及导出当前的 Ubuntu 发行版,然后将其导入到 D 盘的目标目录。以下是详细的步骤…

【知识】可视化理解git中的cherry-pick、merge、rebase

转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~ 这三个确实非常像,以至于对于初学者来说比较难理解。 总结对比 先给出对比: 特性git mergegit rebasegit cherry-pick功能合并…

DBO优化最近邻分类预测matlab

蜣螂优化算法(Dung Beetle Optimizer,简称 DBO)作为一种新兴的群智能优化算法,于 2022 年末被提出,其灵感主要来源于蜣螂的滚球、跳舞、觅食、偷窃以及繁殖等行为。 本次使用的数据为 Excel 格式的分类数据集。该数据…

vulnhub靶场【kioptrix-3】靶机

前言 靶机:kioptrix-3,IP地址为192.168.1.74 攻击:kali,IP地址为192.168.1.16 都采用虚拟机,网卡为桥接模式 文章中涉及的靶机,来源于vulnhub官网,想要下载,可自行访问官网下载&a…