如何获取文档每个分片中的段数 | 弹性搜索

Dea*_*DER 1 elasticsearch

有没有一种方法可以获取 Elasticsearch 集群每个分片中的段数?

我确实查看了 _cat/segments?v 但我不太确定生成块,因为我需要获取索引的段总数。

Val*_*Val 5

您可以使用具有分片级别详细信息的Index stats API来执行此操作

GET your_index/_stats?level=shards
Run Code Online (Sandbox Code Playgroud)

你会得到:

  "indices": {
    "your_index": {
      "primaries": {
        ...
      },
      "total": {
        ...
      },
      "shards": {
        "0": [
          {
            ...
            "segments": {
              "count": 4,                            <--- here is your information
              "memory_in_bytes": 107085,
              "terms_memory_in_bytes": 78808,
              "stored_fields_memory_in_bytes": 1256,
              "term_vectors_memory_in_bytes": 0,
              "norms_memory_in_bytes": 8256,
              "points_memory_in_bytes": 749,
              "doc_values_memory_in_bytes": 18016,
              "index_writer_memory_in_bytes": 0,
              "version_map_memory_in_bytes": 0,
              "fixed_bit_set_memory_in_bytes": 216,
              "max_unsafe_auto_id_timestamp": -1,
              "file_sizes": {}
            },
Run Code Online (Sandbox Code Playgroud)

或者,您也可以使用索引段 API

GET your_index/_segments
Run Code Online (Sandbox Code Playgroud)

你会得到:

  "indices": {
    "your_index": {
      "shards": {
        "0": [
          {
            "routing": {
              "state": "STARTED",
              "primary": true,
              "node": "8Gql5xv_T7C8oXtPsWb4pQ"
            },
            "num_committed_segments": 4,             <--- here is your information
            "num_search_segments": 4,
            "segments": {
              "_15x": {
                ...
Run Code Online (Sandbox Code Playgroud)