내 elasticsearch 데이터베이스에는 'myindex'(색인은 myindex_1, myindex_2 등)와 같은 단어로 시작하는 수백 개의 색인이 포함되어 있습니다. 이러한 모든 색인에는 동일한 'doc_type'이 포함됩니다 (예 : 'mydoctype').탄성 검색 : 색인의 와일드 카드 검색에서 하나의 문서 찾기
이 doc_type에는 여러 개의 문서가 있습니다. 다른 필드들 중에서 각 문서에는 고유 번호가있는 myid라는 id 필드가 있습니다.
나는 각 문서에서 가장 낮은 myid 번호를 가진 기준으로 각 색인에서 하나의 문서를 얻고 싶습니다.
나는이 작업을 수행하는 데 사용 :curl -XGET 'http://<es_host>/myindex*/mydoctype/_search?_source_include=duration&from=0&size=10000&pretty'
그러나 이것은 각 인덱스의 mydoctype에서 모든 문서의 큰 목록을 생성합니다.
그래서, 나는 SO 여기에 본 몇 가지 예에 따라이 작업을 수행하려고 :
curl -XGET 'http://<es_host>/myindex*/mydoctype/_search?_source_include=duration&from=0&size=10000&pretty' -d '
{
"sort": [
{"myid": "asc"}
]
}
'
위의 단지를 정렬하고 만되는 크기에, 여전히 모든 문서를 나열합니다. 크기를 1로 변경하면 문서가 정확히 1 개만 반환됩니다.
나는 각 색인의 doctype에서 문서의 목록을 찾고 있는데, 여기에는 해당 문서가 해당 색인의 doctype에서 가장 낮은 myid 값을 갖습니다.
내가 사용할 수있는 몇 가지 쿼리가 있습니까? 개별적으로 각 색인을 반복하여 검색 한 다음 가장 낮은 myid로 문서를 가져 오려고했지만이 검색은 완료하는 데 오래 걸립니다.
당신을 감사합니다! 이것은 내가 취할 수있는 것보다 훨씬 길다. 그러나 인덱스 수에 따라 몇 백 개를 예상했지만 10 개의 결과 만 반환합니다. 그게 왜 어떤 아이디어일까요? – bhairav
'terms' 집계에'size' 매개 변수를 추가했습니다. 잘 보이도록 조절하십시오. – Val
그 트릭을 했어 !! 정말 고맙습니다! – bhairav