2016-10-12 8 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パラメータが使用されているかどうかは、これはかなり良い指標です。私はバージョン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

+0

実際に検索要求が生成されて実行されるのはログでわかりますか?これは、検索が正しく機能しない理由を助けることができます。 – apepper

+1

既知の問題と思われる:https://github.com/ankane/searchkick/pull/639 – wrburgess

答えて

0

あなたは "ソート" をしようとしています。コメントがまだありませんので、私はこれを回答として掲示しました

+0

文字列化されたキーと象徴化されたキーの問題だと思いますか? – awendt

+0

私はruby上でどうやってやっているのかわからないのですが、私はJavaでelasticsearchを使っています。うまくいけば、これはあなたを助けることができます。 http://stackoverflow.com/questions/30030264/ordering-elasticsearch-results-elasticsearch-rails-gem-rails – Anthony

関連する問題