[curl] ElasticSearch 서버의 모든 인덱스를 나열 하시겠습니까?

ElasticSearch 서버에있는 모든 인덱스를 나열하고 싶습니다. 나는 이것을 시도했다 :

curl -XGET localhost:9200/

그러나 그것은 단지 나에게 이것을 제공합니다 :

{
  "ok" : true,
  "status" : 200,
  "name" : "El Aguila",
  "version" : {
    "number" : "0.19.3",
    "snapshot_build" : false
  },
  "tagline" : "You Know, for Search"
}

모든 인덱스 목록을 원합니다 ..



답변

클러스터에있는 모든 지수의 간결한 목록을 보려면

curl http://localhost:9200/_aliases

그러면 인덱스 목록과 해당 별칭이 표시됩니다.

예쁘게 인쇄하려면 다음을 추가하십시오 pretty=true.

curl http://localhost:9200/_aliases?pretty=true

인덱스가 호출되면 결과는 다음 old_deuteronomymungojerrie같습니다.

{
  "old_deuteronomy" : {
    "aliases" : { }
  },
  "mungojerrie" : {
    "aliases" : {
      "rumpleteazer" : { },
      "that_horrible_cat" : { }
    }
  }
}


답변

시험

curl 'localhost:9200/_cat/indices?v'

그것은 당신에게 테이블 방식으로 자기 설명 출력을 제공 할 것입니다

health index    pri rep docs.count docs.deleted store.size pri.store.size
yellow customer   5   1          0            0       495b           495b


답변

당신은 쿼리 할 수 ​​있으며 localhost:9200/_status, 각각에 대한 색인 및 정보 목록을 제공합니다. 응답은 다음과 같습니다.

{
  "ok" : true,
  "_shards" : { ... },
  "indices" : {
    "my_index" : { ... },
    "another_index" : { ... }
  }
}


답변

_stats 명령은 원하는 메트릭을 지정하여 결과를 사용자 정의하는 방법을 제공합니다. 인덱스를 얻는 방법은 다음과 같습니다.

GET /_stats/indices

_stats쿼리 의 일반적인 형식 은 다음과 같습니다.

/_stats
/_stats/{metric}
/_stats/{metric}/{indexMetric}
/{index}/_stats
/{index}/_stats/{metric}

측정 항목이있는 위치 :

indices, docs, store, indexing, search, get, merge,
refresh, flush, warmer, filter_cache, id_cache,
percolate, segments, fielddata, completion

나 자신의 연습으로, 나는 다른 정보없이 탄성 검색 색인을 나열하는 기능을 제공하는 작은 elasticsearch 플러그인을 작성했습니다. 다음 URL에서 찾을 수 있습니다.

http://blog.iterativ.ch/2014/04/11/listindices-writing-your-first-elasticsearch-java-plugin/

https://github.com/iterativ/elasticsearch-listindices


답변

나는 이것을 사용하여 모든 지수를 얻는다.

$ curl --silent 'http://127.0.0.1:9200/_cat/indices' | cut -d\  -f3

이 목록으로 작업 할 수 있습니다 …

$ curl -s 'http://localhost:9200/_cat/indices' | head -5
green open qa-abcdefq_1458925279526           1 6       0     0   1008b    144b
green open qa-test_learnq_1460483735129    1 6       0     0   1008b    144b
green open qa-testimportd_1458925361399       1 6       0     0   1008b    144b
green open qa-test123p_reports                1 6 3868280 25605   5.9gb 870.5mb
green open qa-dan050216p_1462220967543        1 6       0     0   1008b    144b

위의 세 번째 열 (지수 이름)을 얻으려면 :

$ curl -s 'http://localhost:9200/_cat/indices' | head -5 | cut -d\  -f3
qa-abcdefq_1458925279526
qa-test_learnq_1460483735129
qa-testimportd_1458925361399
qa-test123p_reports
qa-dan050216p_1462220967543

참고 :awk '{print $3}' 대신 사용할 수도 있습니다 cut -d\ -f3.

열 헤더

?v열 머리글을 추가하기 위해 쿼리에 접미사를 붙일 수도 있습니다 . 그렇게하면 cut...방법 이 중단 되므로이 awk..시점에서 선택을 사용하는 것이 좋습니다 .

$ curl -s 'http://localhost:9200/_cat/indices?v' | head -5
health status index                              pri rep docs.count docs.deleted store.size pri.store.size
green  open   qa-abcdefq_1458925279526             1   6          0            0      1008b           144b
green  open   qa-test_learnq_1460483735129      1   6          0            0      1008b           144b
green  open   qa-testimportd_1458925361399         1   6          0            0      1008b           144b
green  open   qa-test123p_reports                  1   6    3868280        25605      5.9gb        870.5mb


답변

또한 사람이 읽을 수있는 인덱스 목록을 제공하는 / _cat / indices를 수행하는 것이 좋습니다.


답변

인덱스 만 목록을 얻는 가장 간단한 방법은 위의 답변을 ‘h = index’매개 변수와 함께 사용하는 것입니다.

curl -XGET "localhost:9200/_cat/indices?h=index"