2015-07-17 2 views
1

Я просто хотел дважды проверить, не пропустил ли я что-нибудь. В ElasticSearch 1.4 невозможно выполнить фильтрацию на стороне сервера на основе результатов агрегирования, правильно? У меня есть, например, средняя процентная совокупность (0 ..), и я хочу удалить все, что выше 0.9 в результатах.ElasticSearch Filter by Aggregation Результат

С редуктором ES 2.0 это кажется возможным или прямо сейчас на стороне клиента, но для этого потребуется очень высокий термин (в конце концов, все), чтобы понять это.

Есть ли способ, которым я пропустил с ES 1.4 для достижения этого?

Вот пример:

{ 
    "aggs": { 
    "group": { 
     "terms": { 
     "field": "contextRaw.site_city", 
     "order": { 
      "result": "desc" 
     } 
     }, 
     "aggs": { 
     "result": { 
      "avg": { 
      "field": "somePercentage" 
      } 
     } 
     } 
    } 
    } 
} 

С результатом, что в настоящее время также небольшие ведра находятся на вершине с процентом 1,0, в то время как я не заинтересован в тех, но в них ниже 0,9.

"aggregations": { 
     "group": { 
     "doc_count_error_upper_bound": -1, 
     "sum_other_doc_count": 5924518, 
     "buckets": [ 
      { 
       "key": "value A", 
       "doc_count": 3921, 
       "result": { 
        "value": 1 
       } 
      }, 
      { 
       "key": "value B", 
       "doc_count": 312, 
       "result": { 
        "value": 1 
       } 
      }, 

ответ

1

Я не был уверен, что лучшее место, чтобы спросить, он получил ответ в official forums.

в 1.4 нет фильтра для фильтрации ведер, возвращаемых агрегатами на стороне клиента. Приходя в 2.0 с новыми агрегатами трубопровода есть агрегация bucket_selector, которая позволит вам сделать этот вид фильтрации, хотя

.