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

时间:2018-06-20 09:46:43

标签: elasticsearch

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

我确实研究了_cat / segments?v,但是我不确定 generation 块,因为我需要获取索引的分段总数。

1 个答案:

答案 0 :(得分:0)

您可以使用带有分片级详细信息的Index stats API来实现

GET your_index/_stats?level=shards

您将获得:

  "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": {}
            },

或者,您也可以使用Index segments API

GET your_index/_segments

您将获得:

  "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": {
                ...