当前位置:首页>python>7python之es分成24片及重建索引研究

7python之es分成24片及重建索引研究

  • 2026-09-02 18:16:03
7python之es分成24片及重建索引研究

写在前面的话

三次婚姻。前天,去看房山同事谈合作,回来时打了个车。上车,滴滴小哥一直咳嗽,我说不好意思,喝酒了。小伙说:没事,哥,我既然从事了这一行,就要适应。我说,这么晚跑车,你媳妇孩子不担心你吗。小伙没说话,过了一会说,哥,我结了三次婚,没有孩子,现在单身。我一下子酒醒一半,这么个老实的白白净净的小伙,怎么这样呢。小伙说:因为我太老实了,第一次婚姻,婚前怀孕,要车要房,都满足了,彩礼那一关,要18万8,给了,临结婚时,又加十万,没同意,人家把孩子流了,就这样,前后一个月,我们就离了。第二次婚姻,对方带个小姑娘,但不差事,该给的都给了,包括泰国旅游,国内各城市走一遍,婚后要她生,她说半年后生,旅游了半年,让她生,她说再等半年,我直接说,明天离婚,谁也别劝,结束了第二段婚姻。小伙挺坎坷,人生无常啊。

[235+100]-------->底部有张生活照片(头条号运营:大家想全托管上号的联系我哦,每天让你得个早餐钱,wx: qhz198607)

【关键词】python、小程序、es分片、重建索引

一、es分片(三级)

描述:在windows上装个es,进行下分片,搞点数据,查询看看效果。

开工:

第一步:windows下docker装es(四级)

20250402周三时间段:22:28-23:00

windows下docker装es,并对es进行分片,分成24片,该怎么做。

先安装docker。

第二步:安装docker desktop(四级)

20250402周三时间段:22:39-23:00
  • 下载并安装 Docker Desktop for Windows

  • 确保启用 WSL2 或 Hyper-V(推荐 WSL2 以获得更好性能)

安装好后,报错如下:

图7a-1

注:这个解决如下:

1. 启用 Virtual Machine Platform
方法一:通过 PowerShell 命令(推荐)
以管理员身份打开 PowerShell

按 Win + S,搜索 "PowerShell"

右键选择 “以管理员身份运行”

执行启用命令
输入以下命令,按回车:

powershell
复制
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
重启计算机
命令执行完成后,必须重启系统使配置生效。

完成之后,效果如下:

图7a-2

注:接下来,在docker里安装es.

第三步:安装ES(四级)

20250403周四时间段:09:21-10:00

拉取 Elasticsearch 镜像

docker pull docker.elastic.co/elasticsearch/elasticsearch:8.12.2

运行截图如下:

图7a-3

注:这个镜像下载到了e盘下,下载完成,要建容器,搞镜像。

第四步:运行Elasticsearch 容器(四级)

20250403周四时间段:09:58-10:00
docker run -d \
  --name elasticsearch \
  -p 9200:9200 \
  -p 9300:9300 \
  -e "discovery.type=single-node" \
  -e "ES_JAVA_OPTS=-Xms4g -Xmx4g" \
  -e "cluster.routing.allocation.disk.threshold_enabled=false" \
  --network elastic-network \
  docker.elastic.co/elasticsearch/elasticsearch:8.12.2

注:在windows下要合成一行,如下:

图7a-4

注:接下来,就要创建索引,并进行分片。

第五步:配置分片数为24(四级)

20250403周四时间段:10:01-11:00

方式一:创建新索引时指定分片

# 通过 curl 命令创建索引
curl -X PUT "http://localhost:9200/my_index" -H "Content-Type: application/json" -d'
{
  "settings": {
    "number_of_shards": 24,
    "number_of_replicas": 1
  }
}'

注:接下来,进行错误处理。

第六步:建索引报错(四级)

20250403周四时间段:10:56-11:00

报错如下:

(base) PS C:\Users\24312> curl.exe -X PUT "http://localhost:9200/my_index"
curl: (52) Empty reply from server

解决方案如下:

  1. 首先确认 Elasticsearch 容器状态

# 检查容器是否运行
docker ps -a

# 如果容器存在但未运行
docker start elasticsearch

# 如果容器不存在,重新创建(使用简化配置)
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 `
  -e "discovery.type=single-node" `
  -e "ES_JAVA_OPTS=-Xms1g -Xmx1g" `
  -e "xpack.security.enabled=false" `
  docker.elastic.co/elasticsearch/elasticsearch:8.12.2
  1. 检查容器日志(关键步骤)

docker logs -f elasticsearch

您需要确认日志最后显示:

"Elasticsearch started successfully!"

而不是内存错误或启动失败信息。

注:原因是监听的https,而本地只有http,需要做修改如下:

方案二:禁用安全功能(适合开发环境)

# 1. 删除旧容器
docker rm -f elasticsearch

# 2. 重新运行容器(禁用安全)
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 `
  -e "discovery.type=single-node" `
  -e "ES_JAVA_OPTS=-Xms1g -Xmx1g" `
  -e "xpack.security.enabled=false" `
  -e "xpack.security.http.ssl.enabled=false" `
  docker.elastic.co/elasticsearch/elasticsearch:8.12.2

# 3. 等待启动后测试
curl.exe -X PUT "http://localhost:9200/my_index" -H "Content-Type: application/json" -d '{
  "settings": {
    "number_of_shards": 24,
    "number_of_replicas": 1
  }
}'

注:而后再创建索引,如下:

curl.exe -X PUT "http://localhost:9200/my_index" -H "Content-Type: application/json" -d "{\""settings\"":{\""number_of_shards\"":24,\""number_of_replicas\"":1}}"

注:创建后,运行效果如下:

图7a-5

注:接下来,验证下索引。

第七步:验证索引(四级)

20250403周四时间段:11:13-12:00

索引验证命令如下:

# 查看索引基本信息
curl.exe -X GET "http://localhost:9200/_cat/indices/my_index?v"
# 查看详细分片配置
curl.exe -X GET "http://localhost:9200/my_index/_settings?pretty"
# 查看分片分布状态
curl.exe -X GET "http://localhost:9200/_cat/shards/my_index?v"

注:单节点环境建议副本设为0,修改如下:

curl.exe -X PUT "http://localhost:9200/my_index/_settings" -H "Content-Type: application/json" -d "{\""number_of_replicas\"":0}"

监控集群状态:

curl.exe -X GET "http://localhost:9200/_cluster/health?pretty"

注:建康状态如下:

图7a-6

如需删除索引:

curl.exe -X DELETE "http://localhost:9200/my_index"

您现在的Elasticsearch环境已正确配置,可以开始进行数据操作了!

注:接下来,就要对历史索引进行分片。

二、历史索引分片(三级)

描述:需要对历史索引进行分片,里面的数据怎么搞,需要重建索引,并写数据进去。

开工:

第一步:查deepseek(四级)

20250403周四时间段:11:26-12:00

对于已存在的 Elasticsearch 索引,无法直接修改分片数量,因为分片数是索引创建时的固定设置。但您可以通过以下方法间接实现分片调整,就是重建索引。

第二步:重建索引(四级)

20250403周四时间段:11:28-12:00

步骤如下:

a.创建新索引(指定新的分片数):

参考语句如下:

curl.exe -X PUT "http://localhost:9200/my_index_new" -H "Content-Type: application/json" -d "{
  \"settings\": {
    \"number_of_shards\": 24,  # 新的分片数
    \"number_of_replicas\": 1
  },
  \"mappings\": { ... }  # 保持与原索引一致
}"

注:实际执行语句如下:

curl.exe -X PUT "http://es01:1200/ragflow_7d19a176807611efb0f80242ac120006/_settings" -H "Content-Type: application/json" -d "{
  "settings": {
    "index.blocks.write": true
  }
}"

第三步:设为只读

curl.exe -u "elastic:infinddi_rag_flow" -X PUT "http://es01:1200/ragflow_7d19a176807611efb0f80242ac120006/_settings" -H "Content-Type: application/json" -d "{ \`"settings\`": { \`"index.blocks.write\`": true } }"

截图如下:

图7a-7

注:接下来,增加分片。程序如下:

curl.exe -u "elastic:infini_rag_flow" -X POST "http://es01:1200/ragflow_7d19a176807611efb0f80242ac120006/_split/ragflow_7d19a176807611efb0f80242ac120006_split" -H "Content-Type: application/json" -d "{ \`"settings\`": { \`"index.number_of_shards\`": 32, \`"index.number_of_replicas\`": 1 } }"

注:建 的好像不对,接下来,先做索引的备份及恢复。

第三步:索引的备份与恢复(四级)

20250403周四时间段:15:07-16:00

先对索引进行备份,之后,再对索引进行恢复,还之后,再修改索引。

三、头条号战果汇报

昨日总播放:282.6万,总收入:174.8,累计收入:4724.4块,可提现:1482.4,软件截图如下:

图7c-1

注:想要全脱管运营头条号的联系我,你出账号,我来运营,收益四六分成(你六我四),你当甩手掌柜,每天都能得几块零花钱,财富wx: 17701328814,也可以加群先了解一下。

图7c-2

四、生活照片

拍摄于‎2026‎年‎3‎月‎22‎日,‏‎18:39:00,带二宝出去玩,二宝三岁五个月。小伙最后说了第三段婚姻,第三段婚姻是自己在北京碰的,小伙之前是做网红接活的,哪个大商场要办活动,他会出个方案,联系网红,明星去站台,一个活动下来,策划费五万起,请的网红,一个能提1000块钱,那时活动多,他一万能挣上百万。但他的第三任老婆看不到这些,自己在超市收银拿着5000的工资,天天得得他不出去工作,小伙让她看卡里余额,照样挡不住说他。有一次,小伙正在家里写方案,预付款5万已打过来了,再要30个网红,到时,又是3万,她媳妇一直得得得说个没完,最后,小伙忍无可忍,把笔记本电脑摔了,屋里能砸的全砸了,也和媳妇离婚了,结束了第三段婚姻。小伙最后说,这辈子不准备结婚,现在策划活动不景气,晚上跑顺风车,现在需要时找个小网红玩玩得了,不再淌那道混水。每个人的人生都不一样,都充满了故事,所以,不要指责任何人,因为咱没有经历别人经历了什么,活在当下,过好自己的生活。

图7d-1

《本文完》

最新文章

随机文章