2016-12-09 3 views
0

Нужна помощь в преобразовании этого запроса с использованием facet_filter в использование aggs в ES 2.0, поскольку грани больше не поддерживаются в ES 2.0 и выше.эластичный фасет поиска для агрегирования

{ 
    "facets": { 
    "format": { 
     "terms": { 
     "field": "documentary_tag_id", 
     "size": 10, 
     "exclude": ["2"] 
     }, 
     "facet_filter": { 
     "term": { 
      "documentary_tag_id": ["2"] 
     } 
     } 
    } 
    }, 
    "sort": [ 
    "_score", 
    { 
     "documentary_tag_name": { 
     "order": "desc" 
     } 
    } 
    ] 
} 
+0

Я немного смущен фильтром граней для фильтрации по 2, а не по фасетке вы исключаете 2, почему это так? –

+0

Предполагается найти все документальные фильмы с tag_id 2 и исключить 2 из результатов. – user1817347

+0

Да, я вижу два разных поля :) –

ответ

1

Скопления почти то же самое вы должны использовать л, как этот

GET _search 
{ 
    "aggs": { 
    "format_filter": { 
     "filter": { 
     "terms": { 
      "documentary_tag_id": [ 
      "2" 
      ] 
     } 
     }, 
     "aggs": { 
     "format": { 
      "terms": { 
      "field": "documentary_tag_id", 
      "exclude" : "2" 
      } 
     } 
     } 
    } 
    } 
} 

Но его немного отличается uproach, если вы are filtering, чтобы прочитать значение, которое вы должны получить format_filter затем внутри это вы найдете агрегацию. Filtering внутри агрегации то же самое

Смежные вопросы