0
나는 타임 스탬프 필드의 범위를 사용하여 탄성 검색에서 쿼리를 작성했습니다. 각 그룹의 최신 타임 스탬프를 찾아야합니다. 먼저 쿼리를 수행 한 다음 이름 필드별로 그룹화 한 다음 최신 타임 스탬프를 선택합니다. 하지만 작동하지 않습니다. 모든 제안을 부탁드립니다. 아래는 내가 우체부에서 검색 후 쿼리에 사용하는 내 JSON은elasticsearch - 집계에서 최신 시간 스탬프를 찾으려고합니다.
{ "쿼리": { "범위": { "타임 스탬프": { "GTE": "2016-10-05T15 : 00 : 35" "LTE": "2016-10-06T15 : 10 : 35"}} },
"aggs" : {
"groupbyname" : {
"terms" : {
"field" : "name"
},
"aggs" : {
"selectlatesttimestamp" : {
"max" : {
"field" : "timestamp"
}
}
}
}
}
은}
감사합니다 : 당신이 최신 타임 스탬프는이 같은 뭔가를 할 수 얻을 필요가있는 경우에만 일부 필드가 필요하면, 당신은 가기
_source
섹션을 포함 할 수예를 들어, 집계 안타 , 그것은 작동해야하지만, 그것은 여전히 그 시간 범위에서 같은 이름을 가진 여러 문서를 반환하는 몇 가지 이유로 보인다. 우리가 타임 스탬프를 정의하거나 맵핑 한 방식으로 뭔가 다른 것인지 궁금합니다. 우리가 "name"과 "timestamp"를 어떻게 정의했는지에 대한 JSON은 ... "name": { "type": "string" } "timestamp": { "type": "date" , "형식": "strict_date_optional_time || epoch_millis" – BZelasky
내 결과 집합을 얻는 방법은 다음과 같습니다. https://jsonblob.com/57f69a7ee4b0bcac9f7b677d 나에게 좋을 것 같습니다. 그룹당 하나의 문서에 최신 타임 스탬프가 있습니다. 'name' 필드는''index ':''not_analyzed''로 설정해야합니다. 그렇지 않으면 Elasticsearch가 내용을 토큰 화하고 여분의 버킷을 만들 수 있습니다. 따라서'name : "new york" '새로운 '과'요크 '를위한 두 개의 양동이를 보여줄 것입니다. –