2014-01-29 219 views
2

我正在嘗試對我的搜索進行排序。我正在使用gem mongoid-elasticsearch進行搜索。這是我的車型配置:使用mongoid-elasticsearch gem對搜索結果進行排序

class ActivityLog 
    include Mongoid::Document 
    include Mongoid::Timestamps 
    include Mongoid::Elasticsearch 
    elasticsearch!(
    { 
     wrapper: :load, 
     sort: [ 
     { created_at: "desc" } 
     ] 
    } 
) 

    field :type, type: String 
end 

此配置不引發任何錯誤,但它並沒有任何看起來像它有任何影響,因爲搜索結果是隨機列出。

我想我實現根據該文件的配置:

Check mongoid-elasticsearch documentation here

Check elasticsearch documentation here

我的搜索查詢順便說一句是:

ActivityLog.es.search(params[:query], page: params[:page]).results.paginate(per_page: 5, page: params[:page]) 

回答

0

您應該刪除陣列封裝:

elasticsearch!(
    { 
    wrapper: :load, 
    sort: { created_at: "desc" } 
    } 
) 
0

你會做它Elasticsearch本身

ActivityLog.es.search({ 
    body: { 
    query: { 
     query_string: { 
     query: params[:search] 
     } 
    }, 
    sort: [ 
     {created_at: {order: "asc"}}, 
    ] 
    }) 
用同樣的方法
相關問題