2014-01-29 186 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"}}, 
    ] 
    }) 
用同样的方法
相关问题