美文网首页程序员
搜索引擎ElasticSearch之(2)、索引管理

搜索引擎ElasticSearch之(2)、索引管理

作者: 桥头放牛娃 | 来源:发表于2020-05-07 07:35 被阅读0次

    1、索引管理

    1.1、索引创建

    创建索引主要设置主分片及副分片数量。索引创建后,主分片数不能更改,可以修改副本分片数。
    请求格式:

    PUT /{索引名}
    {
        "settings":{
        "number_of_shards":{主分片数},
        "number_of_replicas":{副本分片数}
      }
    }
    

    示例:

    PUT /city
    {
      "settings":{
        "number_of_shards":1,
        "number_of_replicas":1
      }
    }
    {
      "acknowledged" : true,
      "shards_acknowledged" : true,
      "index" : "city"
    }
    

    1.2、索引删除

    请求格式:

    DELETE /{索引名}
    

    1.3、获取索引

    请求格式:

    GET /{索引名}
    

    1.4、打开/关闭索引

    关闭的索引只能显示索引元数据信息,不能进行读写操作。
    请求格式:

    POST /{索引名}/_close
    POST /{索引名}/_open
    

    1.5、修改索引配置

    修改索引只可修改副本分片数。
    请求格式:

    PUT /{索引名}/_settings
    {
      "settings":{
        "number_of_replicas":{副本分片数}
      }
    }
    

    示例:

    PUT /city/_settings
    {
      "settings":{
        "number_of_replicas":0
      }
    }
    

    1.6、获取配置

    请求格式:

    GET /{索引名}/_settings
    

    示例:

    GET /city/_settings
    
    {
      "city" : {
        "settings" : {
          "index" : {
            "creation_date" : "1585405501997",
            "number_of_shards" : "1",
            "number_of_replicas" : "0",
            "uuid" : "eOpl1nAIQfyXLdfXCFliKg",
            "version" : {
              "created" : "7060099"
            },
            "provided_name" : "city"
          }
        }
      }
    }
    

    1.7、索引别名

    Elasticsearch中可以对一个或多个索引指定别名,通过别名可以查询到一个或多个索引。Elasticsearch会自动将别名映射到对应的索引上。可以对别名编写过滤器或路由,集群中的别名不能重复,也不能和索引名重复。
    命令格式:

    POST /_aliases
    {
      "actions":
      {
        "{add或remove}":{"index":"{索引名}","alias":"{别名}"}
      }
    }
    

    示例:
    创建别名:

    POST /_aliases
    {
      "actions":
      {
        "add":{"index":"city","alias":"mycity"}
      }
    }
    

    删除别名:

    POST /_aliases
    {
      "actions":
      {
        "remove":{"index":"city","alias":"mycity"}
      }
    }
    

    关联多个索引:

    POST /_aliases
    {
      "actions": [
        {
          "add": {
            "index": "city",
            "alias": "myindex"
          }
        },
        {
          "add":{
            "index": "people",
            "alias": "myindx"
          }
        }
      ]
    }
    

    关联多个索引:

    POST /_aliases
    {
      "actions": [
        {
          "add": {
            "indices": ["city","people"],
            "alias": "myindex"
          }
        }
      ]
    }
    

    1.8、别名过滤器及路由

    可以给别名创建一个过滤器或是设置路由,过滤器或路由规则适用于索引的搜索、计数、查询、删除等操作。创建过滤时需确保对应字段在映射中存在。
    带过滤器别名:

    POST /_aliases
    {
      "actions": [
        {
          "add": {
            "index": "people",
            "alias": "alias1",
            "filter": {"term": {
              "country": "中国"
            }}
          }
        }
      ]
    }
    

    带路由别名:

    POST /_aliases
    {
      "actions": [
        {
          "add": {
            "index": "people",
            "alias": "alias1",
            "routing": 1
          }
        }
      ]
    }
    

    指定搜索路由和查询路由:

    POST /_aliases
    {
      "actions": [
        {
          "add": {
            "index": "people",
            "alias": "alias1",
            "search_routing": "1,2",
            "index_routing": "1"
          }
        }
      ]
    }
    

    1.9、查询别名

    查询格式:

    GET /{索引名}/_alias/{别名}
    

    示例:
    查询索引别名:

    GET /_alias/
    

    查询索引的别名:

    GET /people/_alias
    GET /people/_alias/ali*
    GET /people/_alias/*
    

    查询别名对应的索引:

    GET /_alias/alias1
    

    1.10、测试分析器

    分析器会将文本分析成单独的词,并对这些词建立倒排索引。

    POST /_analyze
    {
      "analyzer": "ik_smart",
      "text": "我是中国人!"
    }
    
    
    {
      "detail" : {
        "custom_analyzer" : false,
        "analyzer" : {
          "name" : "org.wltea.analyzer.lucene.IKAnalyzer",
          "tokens" : [
            {
              "token" : "我",
              "start_offset" : 0,
              "end_offset" : 1,
              "type" : "CN_CHAR",
              "position" : 0,
              "bytes" : "[e6 88 91]",
              "positionLength" : 1,
              "termFrequency" : 1
            },
            {
              "token" : "是",
              "start_offset" : 1,
              "end_offset" : 2,
              "type" : "CN_CHAR",
              "position" : 1,
              "bytes" : "[e6 98 af]",
              "positionLength" : 1,
              "termFrequency" : 1
            },
            {
              "token" : "中国人",
              "start_offset" : 2,
              "end_offset" : 5,
              "type" : "CN_WORD",
              "position" : 2,
              "bytes" : "[e4 b8 ad e5 9b bd e4 ba ba]",
              "positionLength" : 1,
              "termFrequency" : 1
            }
          ]
        }
      }
    }
    

    1.11、索引模板

    索引模板就是创建好一个索引参数配置(settings)和映射(mapping)的模板,在创建新索引的时候指定模板名称即可治愈模板定义好的参数设置和映射。

    PUT /_template/logtemplate
    {
      "template": "log-*",
      "order": 1,
      "settings": {
        "number_of_shards": 1,
        "number_of_replicas": 1
      },
      
      "aliases": {"myindex":{}}
    }
    

    2、索引监控

    2.1、索引统计信息

    索引统计信息提供索引中不同内容的统计数据。
    命令格式:

    GET /{索引名}/_stats
    

    命令示例:

    GET /_stats
    
    GET /people/_stats
    
    {
      "_shards" : {
        "total" : 6,
        "successful" : 3,
        "failed" : 0
      },
      "_all" : {
        "primaries" : {
          "docs" : {
            "count" : 4,
            "deleted" : 0
          },
          "store" : {
            "size_in_bytes" : 16172
          },
          "indexing" : {
            "index_total" : 0,
            "index_time_in_millis" : 0,
            "index_current" : 0,
            "index_failed" : 0,
            "delete_total" : 0,
            "delete_time_in_millis" : 0,
            "delete_current" : 0,
            "noop_update_total" : 0,
            "is_throttled" : false,
            "throttle_time_in_millis" : 0
          },
          "get" : {
            "total" : 1,
            "time_in_millis" : 0,
            "exists_total" : 1,
            "exists_time_in_millis" : 0,
            "missing_total" : 0,
            "missing_time_in_millis" : 0,
            "current" : 0
          },
          "search" : {
            "open_contexts" : 0,
            "query_total" : 0,
            "query_time_in_millis" : 0,
            "query_current" : 0,
            "fetch_total" : 0,
            "fetch_time_in_millis" : 0,
            "fetch_current" : 0,
            "scroll_total" : 0,
            "scroll_time_in_millis" : 0,
            "scroll_current" : 0,
            "suggest_total" : 0,
            "suggest_time_in_millis" : 0,
            "suggest_current" : 0
          },
          "merges" : {
            "current" : 0,
            "current_docs" : 0,
            "current_size_in_bytes" : 0,
            "total" : 0,
            "total_time_in_millis" : 0,
            "total_docs" : 0,
            "total_size_in_bytes" : 0,
            "total_stopped_time_in_millis" : 0,
            "total_throttled_time_in_millis" : 0,
            "total_auto_throttle_in_bytes" : 62914560
          },
          "refresh" : {
            "total" : 6,
            "total_time_in_millis" : 0,
            "external_total" : 6,
            "external_total_time_in_millis" : 0,
            "listeners" : 0
          },
          "flush" : {
            "total" : 3,
            "periodic" : 0,
            "total_time_in_millis" : 0
          },
          "warmer" : {
            "current" : 0,
            "total" : 3,
            "total_time_in_millis" : 0
          },
          "query_cache" : {
            "memory_size_in_bytes" : 0,
            "total_count" : 0,
            "hit_count" : 0,
            "miss_count" : 0,
            "cache_size" : 0,
            "cache_count" : 0,
            "evictions" : 0
          },
          "fielddata" : {
            "memory_size_in_bytes" : 0,
            "evictions" : 0
          },
          "completion" : {
            "size_in_bytes" : 0
          },
          "segments" : {
            "count" : 4,
            "memory_in_bytes" : 4884,
            "terms_memory_in_bytes" : 3108,
            "stored_fields_memory_in_bytes" : 1248,
            "term_vectors_memory_in_bytes" : 0,
            "norms_memory_in_bytes" : 256,
            "points_memory_in_bytes" : 0,
            "doc_values_memory_in_bytes" : 272,
            "index_writer_memory_in_bytes" : 0,
            "version_map_memory_in_bytes" : 0,
            "fixed_bit_set_memory_in_bytes" : 0,
            "max_unsafe_auto_id_timestamp" : -1,
            "file_sizes" : { }
          },
          "translog" : {
            "operations" : 0,
            "size_in_bytes" : 935,
            "uncommitted_operations" : 0,
            "uncommitted_size_in_bytes" : 935,
            "earliest_last_modified_age" : 0
          },
          "request_cache" : {
            "memory_size_in_bytes" : 0,
            "evictions" : 0,
            "hit_count" : 0,
            "miss_count" : 0
          },
          "recovery" : {
            "current_as_source" : 0,
            "current_as_target" : 0,
            "throttle_time_in_millis" : 0
          }
        },
        "total" : {
          "docs" : {
            "count" : 4,
            "deleted" : 0
          },
          "store" : {
            "size_in_bytes" : 16172
          },
          "indexing" : {
            "index_total" : 0,
            "index_time_in_millis" : 0,
            "index_current" : 0,
            "index_failed" : 0,
            "delete_total" : 0,
            "delete_time_in_millis" : 0,
            "delete_current" : 0,
            "noop_update_total" : 0,
            "is_throttled" : false,
            "throttle_time_in_millis" : 0
          },
          "get" : {
            "total" : 1,
            "time_in_millis" : 0,
            "exists_total" : 1,
            "exists_time_in_millis" : 0,
            "missing_total" : 0,
            "missing_time_in_millis" : 0,
            "current" : 0
          },
          "search" : {
            "open_contexts" : 0,
            "query_total" : 0,
            "query_time_in_millis" : 0,
            "query_current" : 0,
            "fetch_total" : 0,
            "fetch_time_in_millis" : 0,
            "fetch_current" : 0,
            "scroll_total" : 0,
            "scroll_time_in_millis" : 0,
            "scroll_current" : 0,
            "suggest_total" : 0,
            "suggest_time_in_millis" : 0,
            "suggest_current" : 0
          },
          "merges" : {
            "current" : 0,
            "current_docs" : 0,
            "current_size_in_bytes" : 0,
            "total" : 0,
            "total_time_in_millis" : 0,
            "total_docs" : 0,
            "total_size_in_bytes" : 0,
            "total_stopped_time_in_millis" : 0,
            "total_throttled_time_in_millis" : 0,
            "total_auto_throttle_in_bytes" : 62914560
          },
          "refresh" : {
            "total" : 6,
            "total_time_in_millis" : 0,
            "external_total" : 6,
            "external_total_time_in_millis" : 0,
            "listeners" : 0
          },
          "flush" : {
            "total" : 3,
            "periodic" : 0,
            "total_time_in_millis" : 0
          },
          "warmer" : {
            "current" : 0,
            "total" : 3,
            "total_time_in_millis" : 0
          },
          "query_cache" : {
            "memory_size_in_bytes" : 0,
            "total_count" : 0,
            "hit_count" : 0,
            "miss_count" : 0,
            "cache_size" : 0,
            "cache_count" : 0,
            "evictions" : 0
          },
          "fielddata" : {
            "memory_size_in_bytes" : 0,
            "evictions" : 0
          },
          "completion" : {
            "size_in_bytes" : 0
          },
          "segments" : {
            "count" : 4,
            "memory_in_bytes" : 4884,
            "terms_memory_in_bytes" : 3108,
            "stored_fields_memory_in_bytes" : 1248,
            "term_vectors_memory_in_bytes" : 0,
            "norms_memory_in_bytes" : 256,
            "points_memory_in_bytes" : 0,
            "doc_values_memory_in_bytes" : 272,
            "index_writer_memory_in_bytes" : 0,
            "version_map_memory_in_bytes" : 0,
            "fixed_bit_set_memory_in_bytes" : 0,
            "max_unsafe_auto_id_timestamp" : -1,
            "file_sizes" : { }
          },
          "translog" : {
            "operations" : 0,
            "size_in_bytes" : 935,
            "uncommitted_operations" : 0,
            "uncommitted_size_in_bytes" : 935,
            "earliest_last_modified_age" : 0
          },
          "request_cache" : {
            "memory_size_in_bytes" : 0,
            "evictions" : 0,
            "hit_count" : 0,
            "miss_count" : 0
          },
          "recovery" : {
            "current_as_source" : 0,
            "current_as_target" : 0,
            "throttle_time_in_millis" : 0
          }
        }
      },
      "indices" : {
        "people" : {
          "uuid" : "trYLrNhrRFqnhbPHhVNFMA",
          "primaries" : {
            "docs" : {
              "count" : 4,
              "deleted" : 0
            },
            "store" : {
              "size_in_bytes" : 16172
            },
            "indexing" : {
              "index_total" : 0,
              "index_time_in_millis" : 0,
              "index_current" : 0,
              "index_failed" : 0,
              "delete_total" : 0,
              "delete_time_in_millis" : 0,
              "delete_current" : 0,
              "noop_update_total" : 0,
              "is_throttled" : false,
              "throttle_time_in_millis" : 0
            },
            "get" : {
              "total" : 1,
              "time_in_millis" : 0,
              "exists_total" : 1,
              "exists_time_in_millis" : 0,
              "missing_total" : 0,
              "missing_time_in_millis" : 0,
              "current" : 0
            },
            "search" : {
              "open_contexts" : 0,
              "query_total" : 0,
              "query_time_in_millis" : 0,
              "query_current" : 0,
              "fetch_total" : 0,
              "fetch_time_in_millis" : 0,
              "fetch_current" : 0,
              "scroll_total" : 0,
              "scroll_time_in_millis" : 0,
              "scroll_current" : 0,
              "suggest_total" : 0,
              "suggest_time_in_millis" : 0,
              "suggest_current" : 0
            },
            "merges" : {
              "current" : 0,
              "current_docs" : 0,
              "current_size_in_bytes" : 0,
              "total" : 0,
              "total_time_in_millis" : 0,
              "total_docs" : 0,
              "total_size_in_bytes" : 0,
              "total_stopped_time_in_millis" : 0,
              "total_throttled_time_in_millis" : 0,
              "total_auto_throttle_in_bytes" : 62914560
            },
            "refresh" : {
              "total" : 6,
              "total_time_in_millis" : 0,
              "external_total" : 6,
              "external_total_time_in_millis" : 0,
              "listeners" : 0
            },
            "flush" : {
              "total" : 3,
              "periodic" : 0,
              "total_time_in_millis" : 0
            },
            "warmer" : {
              "current" : 0,
              "total" : 3,
              "total_time_in_millis" : 0
            },
            "query_cache" : {
              "memory_size_in_bytes" : 0,
              "total_count" : 0,
              "hit_count" : 0,
              "miss_count" : 0,
              "cache_size" : 0,
              "cache_count" : 0,
              "evictions" : 0
            },
            "fielddata" : {
              "memory_size_in_bytes" : 0,
              "evictions" : 0
            },
            "completion" : {
              "size_in_bytes" : 0
            },
            "segments" : {
              "count" : 4,
              "memory_in_bytes" : 4884,
              "terms_memory_in_bytes" : 3108,
              "stored_fields_memory_in_bytes" : 1248,
              "term_vectors_memory_in_bytes" : 0,
              "norms_memory_in_bytes" : 256,
              "points_memory_in_bytes" : 0,
              "doc_values_memory_in_bytes" : 272,
              "index_writer_memory_in_bytes" : 0,
              "version_map_memory_in_bytes" : 0,
              "fixed_bit_set_memory_in_bytes" : 0,
              "max_unsafe_auto_id_timestamp" : -1,
              "file_sizes" : { }
            },
            "translog" : {
              "operations" : 0,
              "size_in_bytes" : 935,
              "uncommitted_operations" : 0,
              "uncommitted_size_in_bytes" : 935,
              "earliest_last_modified_age" : 0
            },
            "request_cache" : {
              "memory_size_in_bytes" : 0,
              "evictions" : 0,
              "hit_count" : 0,
              "miss_count" : 0
            },
            "recovery" : {
              "current_as_source" : 0,
              "current_as_target" : 0,
              "throttle_time_in_millis" : 0
            }
          },
          "total" : {
            "docs" : {
              "count" : 4,
              "deleted" : 0
            },
            "store" : {
              "size_in_bytes" : 16172
            },
            "indexing" : {
              "index_total" : 0,
              "index_time_in_millis" : 0,
              "index_current" : 0,
              "index_failed" : 0,
              "delete_total" : 0,
              "delete_time_in_millis" : 0,
              "delete_current" : 0,
              "noop_update_total" : 0,
              "is_throttled" : false,
              "throttle_time_in_millis" : 0
            },
            "get" : {
              "total" : 1,
              "time_in_millis" : 0,
              "exists_total" : 1,
              "exists_time_in_millis" : 0,
              "missing_total" : 0,
              "missing_time_in_millis" : 0,
              "current" : 0
            },
            "search" : {
              "open_contexts" : 0,
              "query_total" : 0,
              "query_time_in_millis" : 0,
              "query_current" : 0,
              "fetch_total" : 0,
              "fetch_time_in_millis" : 0,
              "fetch_current" : 0,
              "scroll_total" : 0,
              "scroll_time_in_millis" : 0,
              "scroll_current" : 0,
              "suggest_total" : 0,
              "suggest_time_in_millis" : 0,
              "suggest_current" : 0
            },
            "merges" : {
              "current" : 0,
              "current_docs" : 0,
              "current_size_in_bytes" : 0,
              "total" : 0,
              "total_time_in_millis" : 0,
              "total_docs" : 0,
              "total_size_in_bytes" : 0,
              "total_stopped_time_in_millis" : 0,
              "total_throttled_time_in_millis" : 0,
              "total_auto_throttle_in_bytes" : 62914560
            },
            "refresh" : {
              "total" : 6,
              "total_time_in_millis" : 0,
              "external_total" : 6,
              "external_total_time_in_millis" : 0,
              "listeners" : 0
            },
            "flush" : {
              "total" : 3,
              "periodic" : 0,
              "total_time_in_millis" : 0
            },
            "warmer" : {
              "current" : 0,
              "total" : 3,
              "total_time_in_millis" : 0
            },
            "query_cache" : {
              "memory_size_in_bytes" : 0,
              "total_count" : 0,
              "hit_count" : 0,
              "miss_count" : 0,
              "cache_size" : 0,
              "cache_count" : 0,
              "evictions" : 0
            },
            "fielddata" : {
              "memory_size_in_bytes" : 0,
              "evictions" : 0
            },
            "completion" : {
              "size_in_bytes" : 0
            },
            "segments" : {
              "count" : 4,
              "memory_in_bytes" : 4884,
              "terms_memory_in_bytes" : 3108,
              "stored_fields_memory_in_bytes" : 1248,
              "term_vectors_memory_in_bytes" : 0,
              "norms_memory_in_bytes" : 256,
              "points_memory_in_bytes" : 0,
              "doc_values_memory_in_bytes" : 272,
              "index_writer_memory_in_bytes" : 0,
              "version_map_memory_in_bytes" : 0,
              "fixed_bit_set_memory_in_bytes" : 0,
              "max_unsafe_auto_id_timestamp" : -1,
              "file_sizes" : { }
            },
            "translog" : {
              "operations" : 0,
              "size_in_bytes" : 935,
              "uncommitted_operations" : 0,
              "uncommitted_size_in_bytes" : 935,
              "earliest_last_modified_age" : 0
            },
            "request_cache" : {
              "memory_size_in_bytes" : 0,
              "evictions" : 0,
              "hit_count" : 0,
              "miss_count" : 0
            },
            "recovery" : {
              "current_as_source" : 0,
              "current_as_target" : 0,
              "throttle_time_in_millis" : 0
            }
          }
        }
      }
    }
    

    统计数据说明:

    • docs 文档及删除文档数量
    • store 索引大小
    • indexing 索引统计数据,可以结合用逗号分隔的类型来提供文档类型基本的统计数据
    • get 获取统计数据,包含缺失统计
    • search 搜索统计数据,可以添加额外的groups参数包含自定义分子的统计数据。groups接受逗号分隔的组名列表。使用_all返回所有分组的统计数据。
    • completion 完成建议统计数据
    • fielddata 字段数据统计数据
    • flush 冲洗统计数据
    • merge 混合统计数据
    • request_cache 分片请求缓存统计数据
    • refresh 刷新统计数据
    • suggest 建议统计数据
    • translog 事物日志统计数据

    2.2、索引分段信息

    索引分段信息包含分片lucene的段信息。
    命令格式:

    获取所有分段信息

    GET /_segments
    

    获取某些索引的分段信息

    GET /{索引名}/_segments
    

    示例:

    GET /people/_segments
    
    {
      "_shards" : {
        "total" : 6,
        "successful" : 3,
        "failed" : 0
      },
      "indices" : {
        "people" : {
          "shards" : {
            "0" : [
              {
                "routing" : {
                  "state" : "STARTED",
                  "primary" : true,
                  "node" : "_tCUuwGSQ1CiF1vxKS42nA"
                },
                "num_committed_segments" : 0,
                "num_search_segments" : 0,
                "segments" : { }
              }
            ],
            "1" : [
              {
                "routing" : {
                  "state" : "STARTED",
                  "primary" : true,
                  "node" : "_tCUuwGSQ1CiF1vxKS42nA"
                },
                "num_committed_segments" : 3,
                "num_search_segments" : 3,
                "segments" : {
                  "_0" : {
                    "generation" : 0,
                    "num_docs" : 1,
                    "deleted_docs" : 0,
                    "size_in_bytes" : 3778,
                    "memory_in_bytes" : 1221,
                    "committed" : true,
                    "search" : true,
                    "version" : "8.4.0",
                    "compound" : true,
                    "attributes" : {
                      "Lucene50StoredFieldsFormat.mode" : "BEST_SPEED"
                    }
                  },
                  "_3" : {
                    "generation" : 3,
                    "num_docs" : 1,
                    "deleted_docs" : 0,
                    "size_in_bytes" : 3752,
                    "memory_in_bytes" : 1221,
                    "committed" : true,
                    "search" : true,
                    "version" : "8.4.0",
                    "compound" : true,
                    "attributes" : {
                      "Lucene50StoredFieldsFormat.mode" : "BEST_SPEED"
                    }
                  },
                  "_4" : {
                    "generation" : 4,
                    "num_docs" : 1,
                    "deleted_docs" : 0,
                    "size_in_bytes" : 3794,
                    "memory_in_bytes" : 1221,
                    "committed" : true,
                    "search" : true,
                    "version" : "8.4.0",
                    "compound" : true,
                    "attributes" : {
                      "Lucene50StoredFieldsFormat.mode" : "BEST_SPEED"
                    }
                  }
                }
              }
            ],
            "2" : [
              {
                "routing" : {
                  "state" : "STARTED",
                  "primary" : true,
                  "node" : "_tCUuwGSQ1CiF1vxKS42nA"
                },
                "num_committed_segments" : 1,
                "num_search_segments" : 1,
                "segments" : {
                  "_3" : {
                    "generation" : 3,
                    "num_docs" : 1,
                    "deleted_docs" : 0,
                    "size_in_bytes" : 3737,
                    "memory_in_bytes" : 1221,
                    "committed" : true,
                    "search" : true,
                    "version" : "8.4.0",
                    "compound" : true,
                    "attributes" : {
                      "Lucene50StoredFieldsFormat.mode" : "BEST_SPEED"
                    }
                  }
                }
              }
            ]
          }
        }
      }
    }
    

    参数说明:

    • _0 JSON文档的键名,代表分片的名称。这个名称用来生成文档名:分片目录中所有以分片名开头的文档属于这个分片
    • generation 需要写新的分片时生成的一个数字,基本上是递增的。分片名从这个生成的数字派生出来
    • num_docs 存储在分片中没被删除的文档数量。
    • deleted_docs 存储在分片中被删除的文档数量,如果这个数字大于0也没问题,磁盘空间会在段合并时被回收
    • size_in_bytes 用字节表示分片使用的磁盘空间数量
    • memory_in_byte 分片需要在内存中存储一些数据使搜索性能更加高效。这个数字表示用于这个目的的字节数量。如果返回值为-1,表示Elasticsearch无法计算这个值
    • committed 表示分片在磁盘上是否同步。提交的分片会在硬重启中存活下来。如果值为false也无需担心,未提交的分片数据也会存储在事物日志中,当集群下次重启时可以重做修改
    • search 分片是否可以进行搜索,如果为false,可能意味着分片已经被写入磁盘但没有经过刷新使之可以进行搜索。
    • version 用来写这个分片的lucene版本
    • compound 分片是否存储在压缩文件中,如果为true,表示lucene将分片中所有的文档融合为一个用来保存文档的描述符。

    2.3、索引分片信息

    所有分片信息报告分片副本存在的节点、分片副本版本、只是分片副本最近状态已经在开启分片索引时遭遇的任何异常。
    命令格式:

    GET /{索引名}/_shard_stores
    

    示例:

    GET /people/_shard_stores
    
    {
      "nodes" : {
        "_tCUuwGSQ1CiF1vxKS42nA" : {
          "name" : "test-node-1",
          "ephemeral_id" : "hlwUZ4faQSeKq_zsM2g5rA",
          "transport_address" : "127.0.0.1:9300",
          "attributes" : {
            "ml.machine_memory" : "8480055296",
            "xpack.installed" : "true",
            "ml.max_open_jobs" : "20"
          }
        }
      },
      "indices" : {
        "people" : { }
      },
      "shards" : [
        [
          {
            "state" : "STARTED",
            "primary" : true,
            "node" : "_tCUuwGSQ1CiF1vxKS42nA",
            "relocating_node" : null,
            "shard" : 0,
            "index" : "people",
            "allocation_id" : {
              "id" : "KtD9HbdnQXmnuJaV1hvK3Q"
            }
          }
        ],
        [
          {
            "state" : "STARTED",
            "primary" : true,
            "node" : "_tCUuwGSQ1CiF1vxKS42nA",
            "relocating_node" : null,
            "shard" : 1,
            "index" : "people",
            "allocation_id" : {
              "id" : "0EkYrz_ZQsG6oAAqxX6j_A"
            }
          }
        ],
        [
          {
            "state" : "STARTED",
            "primary" : true,
            "node" : "_tCUuwGSQ1CiF1vxKS42nA",
            "relocating_node" : null,
            "shard" : 2,
            "index" : "people",
            "allocation_id" : {
              "id" : "B4DSNFVFQcaVT7l8ydq-7g"
            }
          }
        ]
      ]
    }
    

    2.3、搜索分片信息

    搜索分片信息包含某个索引可以拥有搜索的分片信息。
    命令格式:

    GET /{索引名}/_search_shards
    

    示例:

    {
      "nodes" : {
        "_tCUuwGSQ1CiF1vxKS42nA" : {
          "name" : "test-node-1",
          "ephemeral_id" : "hlwUZ4faQSeKq_zsM2g5rA",
          "transport_address" : "127.0.0.1:9300",
          "attributes" : {
            "ml.machine_memory" : "8480055296",
            "xpack.installed" : "true",
            "ml.max_open_jobs" : "20"
          }
        }
      },
      "indices" : {
        "people" : { }
      },
      "shards" : [
        [
          {
            "state" : "STARTED",
            "primary" : true,
            "node" : "_tCUuwGSQ1CiF1vxKS42nA",
            "relocating_node" : null,
            "shard" : 0,
            "index" : "people",
            "allocation_id" : {
              "id" : "KtD9HbdnQXmnuJaV1hvK3Q"
            }
          }
        ],
        [
          {
            "state" : "STARTED",
            "primary" : true,
            "node" : "_tCUuwGSQ1CiF1vxKS42nA",
            "relocating_node" : null,
            "shard" : 1,
            "index" : "people",
            "allocation_id" : {
              "id" : "0EkYrz_ZQsG6oAAqxX6j_A"
            }
          }
        ],
        [
          {
            "state" : "STARTED",
            "primary" : true,
            "node" : "_tCUuwGSQ1CiF1vxKS42nA",
            "relocating_node" : null,
            "shard" : 2,
            "index" : "people",
            "allocation_id" : {
              "id" : "B4DSNFVFQcaVT7l8ydq-7g"
            }
          }
        ]
      ]
    }
    

    3、状态管理

    3.1、索引刷新

    索引刷新操作可以刷新一个或多个索引,使其前一次刷新后的所有操作被执行。近实时能力取决于使用的搜索引擎。
    命令格式:

    POST /{索引名}/_refresh
    

    3.2、索引冲洗

    可以冲洗一个或多个索引。索引主要通过执行冲洗将数据保存带索引存储并且清除内部事务日志,以此来释放索引的内存空间。Elasticsearch默认使用内存启发式算法来自动触发冲洗操作的请求类清理内存。
    命令格式:

    POST /{索引名}/_flush
    

    3.3、索引合并

    合并索引可以强制合并一个或多个索引,合并分片数量和每个分片保存的lucene索引。强制合并可以通过合并来减少分片数量。调用会被阻塞直到合并完成。如果http连接丢失,请求会在后台继续执行,任何新的请求都会被阻塞直到前一个强制合并完成。
    命令格式:

    POST /{索引名}/_forcemerge
    {
      "max_num_segments":1,
      "only_expunge_deletes":false,
      "flush":true
    }
    

    3.4、缓存清除

    可以清除缓存或关联一个或更多索引的特定缓存。默认清除所有缓存,可以明确设置query、fielddata和request来清除特定缓存。
    命令格式:

    POST /people/_cache/clear
    

    相关文章

      网友评论

        本文标题:搜索引擎ElasticSearch之(2)、索引管理

        本文链接:https://www.haomeiwen.com/subject/nzfightx.html