2014-11-25 4 views
0

Кто-нибудь знает, как упорядочить ведомости агрегации/фасетов из диапазона в предсказуемый порядок i/e, порядок, в который они были добавлены в фасет?ElasticSearch Facets/Агрегации сортировка/заказ

В настоящее время ветка 1.4 (и, возможно, более старые ветви) заказывает ведра «doc_count», который не предсказуем. Я хочу иметь возможность выводить ведра в заранее определенном порядке.

+0

Что вы подразумеваете под определенным порядком? Просьба уточнить ваше требование. – bittusarkar

+0

Порядок, который я могу установить, например, вернув ведра в том порядке, в котором я их запросил, вместо того, чтобы упорядочить их с помощью «doc_count» – user3169851

+0

еще, позвольте мне добавить произвольное поле в ведра, которые будут возвращены в ведро, например ярлык или какой-то идентификатор, чтобы я мог работать для себя ... – user3169851

ответ

0

Простым способом может быть заказ в конце на ответ от Elasticsearch. Другой способ может быть упорядоченным по срокам (ключом агрегации).

Update:

Если вы используете агрегацию диапазон дат с запросом, как показано ниже, то результат будет автоматически в хронологическом порядке «3 дня назад», «вчера», «сегодня», независимо от doc_count.

{ 
    "aggs" : { 
     "timerange" : { 
      "date_range" : { 
       "field" : "day", 
       "keyed" : true, 
       "ranges" : [ 
       { 
        "key": "today", 
        "from": "now/d" 
       } 
       , 
       { 
        "key": "yesterday", 
        "from": "now-1d/d", 
        "to": "now/d" 
       }, 
       { 
        "key": "3 days ago", 
        "from": "now-3d/d", 
        "to": "now-2d/d" 
       } 
       ] 
      } 
     } 
    } 
} 

Если вы заинтересованы в ежедневных данных то Date histogram будет более удобно.

+0

Еще раз, тезисы являются запросами RANGE. – user3169851

+0

Я внес некоторые изменения в исходный ответ. Дайте мне знать, правильно ли я понимаю вашу проблему. –

+0

Это очень хакерский ответ, чтобы всегда ожидать, что ключи ведра будут сортироваться из-за того, как они помечены, но в любом случае спасибо. Я выбрал сортировку на стороне клиента – user3169851