이 같은 클라이언트 측에서 계산을 그냥 두 개의 수를 실행하는 데 크게 청소기 될 것이라고 면책 조항을 추가하고 수행하는거야 : 사용을 제외하고 뭔가를 (반환
GET /INDEX/_search
{
"size": 0,
"aggs": {
"types": {
"terms": {
"field": "type",
"size": 10
}
}
}
}
예제의 유형 대신 고유 한 키)를 사용하십시오.
"aggregations": {
"types": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": "Article",
"doc_count": 881
},
{
"key": "Page",
"doc_count": 301
}
]
}
이것을 사용하여 고유 한 계수를 취하여 평균을 계산하십시오. 위의와
여기 스크립트 내 계산에 따라 집계 값을 반환한다 (하나의 요청을 통해) 난에서 조립 수 있었다 해키 방법
this
GET /INDEX/_search
{
"size": 0,
"aggs": {
"parent_agg": {
"terms": {
"script": "'This approach is a weird hack'"
},
"aggs": {
"four_oh_fours": {
"filter": {
"term": {
"message": "404 not found"
}
},
"aggs": {
"count": {
"value_count": {
"field": "_index"
}
}
}
},
"five_hundreds": {
"filter": {
"term": {
"message": "500 error"
}
},
"aggs": {
"count": {
"value_count": {
"field": "_index"
}
}
}
},
"404s_over_500s": {
"bucket_script": {
"buckets_path": {
"four_oh_fours": "four_oh_fours.count",
"five_hundreds": "five_hundreds.count"
},
"script": "return params.four_oh_fours/(params.five_hundreds == 0 ? 1: params.five_hundreds)"
}
}
}
}
}
}
이다, 언급된다.
누군가이 두 가지 방법을 제쳐두고 접근 할 수 있다면, 나는 그것을보고 싶을 것입니다. 희망이 도움이됩니다.
편집 - 고통없는 (기본값) 대신 "표현"유형을 통해 수행되는 동일한 스크립트. 난 그냥 확인 내가 제대로 질문을 이해하게하려면, Lucene을 통해 같은 일이
은 내가 당신을 도울 수 있다고 생각 연산 식 달성하기 위해
스크립트 여기 업데이트 : 그냥 다음에 위의 스크립트 값을 대체 : 정확히 "404 찾을 수 없음"을 포함하는 고유 한 문서의 양을 정확히 "500 오류"출력을 플로트로 포함하는 고유 한 문서의 수량으로 나눈 계산이 필요합니까? 그렇다고 가정하면 메시지 필드가 "키워드"유형으로 매핑됩니까? 그렇지 않다면, 내가 원하는 결과물에 대해 좀 더 명확하게 설명 할 필요가 있습니다. – Miek
@MikeMichaels 예 메시지 필드가 "키워드"유형으로 매핑되기를 원하는 출력에 맞습니다. – jonny