私はpurchased_at
の文書を含むインデックスを持っています。マッピングは次のとおりです。Elasticsearchが降順でレコードをソートしないのはなぜですか?
"purchased_at" : {
"format" : "strict_date_optional_time||epoch_millis",
"type" : "date"
}
文書には、次の形式のフィールド値が含まれています。"2013-06-21T11:07:07.000Z"
。 The docsソートについて:
_score
はソートに使用されていないため計算されません。
私のsort
パラメータが使用されているかどうかは、これはかなり良い指標です。私はバージョン2.0.0でelasticsearch
gemを使用しています。何働いていることは、昇順にソートされ:
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'})
言うまでもなくし、私は混乱しています。フィールドを降順でソートするにはどうすればよいですか? { "purchased_at": { "オーダー": "DESC"}}
PS
実際に検索要求が生成されて実行されるのはログでわかりますか?これは、検索が正しく機能しない理由を助けることができます。 – apepper
既知の問題と思われる:https://github.com/ankane/searchkick/pull/639 – wrburgess