我正在尝试对搜索进行排序。我正在使用gem mongoid-elasticsearch
进行搜索。这是我的模型配置:
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
我的搜索查询btw是:
ActivityLog.es.search(params[:query], page: params[:page]).results.paginate(per_page: 5, page: params[:page])
答案 0 :(得分:0)
你应该删除数据包装器:
elasticsearch!(
{
wrapper: :load,
sort: { created_at: "desc" }
}
)
答案 1 :(得分:0)
与在Elasticsearch本身中执行此操作的方式相同
ActivityLog.es.search({
body: {
query: {
query_string: {
query: params[:search]
}
},
sort: [
{created_at: {order: "asc"}},
]
})