You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Elasticsearch中从指定主分片查询数据并识别主分片

仅从Elasticsearch主分片查询数据的解决方案

简便方法:直接使用_primary偏好参数

不用手动识别主分片编号,直接在查询中指定preference=_primary,Elasticsearch会自动将查询路由到每个分片的主分片上,无需关心具体分片编号。修改后的示例代码如下:

GET my_index/_search?preference=_primary
{
  "_source": ["id", "handle"], 
  "size": 10,
  "query": {
    "bool": {
      "filter": [
        {
          "term": {
            ...
          }
        }
      ]
    }
  }
}

手动指定主分片编号的方法(按需使用)

如果确实需要指定具体主分片编号,按以下步骤操作:

  • 获取索引分片详情:执行以下命令查看索引的分片分布,明确每个主分片的编号:
GET my_index/_settings/_shards

返回结果中,每个分片编号(如0、1)下,标记"primary": true的就是对应编号的主分片。示例返回片段:

{
  "my_index": {
    "shards": {
      "0": [
        {
          "primary": true,
          "node": "node-1",
          ...
        },
        {
          "primary": false,
          "node": "node-2",
          ...
        }
      ]
    }
  }
}
  • 指定单个主分片查询:比如要查编号为0的主分片,就用preference=_shards:0;如果要同时查多个主分片,用逗号分隔编号,如preference=_shards:0,1,2。

注意:手动指定分片编号的方式不够灵活,若后续索引分片配置调整(如扩容分片),之前指定的编号可能失效,推荐优先使用_primary参数。

内容的提问来源于stack exchange,提问作者Phap Truong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 17:05:29