둘 이상의 문서에서 필드 값이 동일한 경우 문서 수를 원합니다. DSL 쿼리를 작성하려면 어떻게해야합니까?동일한 값을 가진 둘 이상의 문서가있는 경우의 탄성 검색 계수
예 :
의 나는이 문서가 있다고 가정 해 봅시다 : foo는 동일한 값이 두 개 이상의 문서에서 발견 된 경우
{ _id:1, foo:1}
{ _id:2, foo:1}
{ _id:3, foo:3}
{ _id:4, foo:2}
{ _id:5, foo:3}
나는 문서의 수를 원한다.
'aggregations':{
'counts':{
'buckets':[
{'doc_count': 221,'key': '10284'},
{'doc_count': 71,'key': '6486'},
{'doc_count': 71,'key': '7395'}
],
'doc_count_error_upper_bound': 0,
'sum_other_doc_count': 0
}
}
내가 다른 필드를 원하는 : 나는이 결과를 가지고
{
"size": 0,
"aggs": {
"counts": {
"terms": {
"field": "foo"
}
}
}
}
: 자, 내가 같은 조건 쿼리를 실행 한 후 2
UPDATE
로 카운트를 원하는 total_count
으로 3이라는 값을 가지고 있습니다. doc_count가 1보다 큰 3 개의 키가 있기 때문에 어떻게 할 수 있습니까?
ES로만이 작업을 수행 할 수 있다고 생각하지 않습니다. 'min_doc_count : 2'' terms' 집계 후에 기본적으로 버킷 수를 필요로합니다. –
ES 5에는 다음과 같은 내용이 있습니다 : https://github.com/elastic/elasticsearch/issues/19553 ('bucket_selector' aggregation을 위해서는 사용할 수있는'_bucket_count' 변수가 있습니다). 그 변수가 다른 스크립트에서도 사용될 수 있다면 여전히 보일 것입니다. –
새로운'_bucket_count' 변수, @AndreiStefan을 언급하는 좋은 점 – Val