2016-10-12 4 views
0

У меня есть индекс, содержащий документы с purchased_at. Его отображение:Почему Elasticsearch не сортирует мои записи в порядке убывания?

"purchased_at" : { 
    "format" : "strict_date_optional_time||epoch_millis", 
    "type" : "date" 
} 

документы содержат значения полей в этом формате: "2013-06-21T11:07:07.000Z". The docs говорят о сортировке:

_score не рассчитывается, так как он не используется для сортировки.

Это очень хороший индикатор, если используется мой параметр sort или нет. Я использую жемчужину elasticsearch в версии 2.0.0. Что работает сортировка в порядке возрастания:

MyModel.search("original_id:#{uniq_original_id}", sort: 'purchased_at') 

Что не работает:

# syntax documented here: 
# https://github.com/elastic/elasticsearch-rails/blob/15761247f3e99654bda946a178e50b5365414b59/elasticsearch-model/test/integration/active_record_pagination_test.rb#L106 
MyModel.search("original_id:#{uniq_original_id}", sort: [{purchased_at: 'desc'}]) 

# syntax used here: 
# https://github.com/elastic/elasticsearch-rails/blob/15761247f3e99654bda946a178e50b5365414b59/elasticsearch-persistence/examples/notes/application.rb#L114 
MyModel.search("original_id:#{uniq_original_id}", sort: [{purchased_at: {order: 'desc'}}]) 

# syntax used here: 
# https://github.com/elastic/elasticsearch-rails/blob/15761247f3e99654bda946a178e50b5365414b59/elasticsearch-rails/lib/rails/templates/searchable.rb#L132 
MyModel.search("original_id:#{uniq_original_id}", sort: {purchased_at: 'desc'}) 

Излишне говорить, что я запутался. Как я могу отсортировать поле в порядке убывания?

+0

Вы можете видеть в журнале, какой поисковый запрос действительно сгенерирован и выполнен? Это может помочь, почему поиск работает неправильно. – apepper

+1

Кажется, это известная проблема: https://github.com/ankane/searchkick/pull/639 – wrburgess

ответ

0

Вы пробовали "сорт": { " purchased_at": { "порядок": "DESC"}}

PS. Я не могу ответить на этот вопрос, поэтому я разместил это как ответ

+0

Считаете ли вы, что это проблема с строчными или символизированными ключами? – awendt

+0

Я действительно не уверен, как вы это делаете на рубине, потому что я использую elasticsearch на java. Надеюсь, это поможет вам. http://stackoverflow.com/questions/30030264/ordering-elasticsearch-results-elasticsearch-rails-gem-rails – Anthony

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