繁体   English   中英

使用Mongoid-elasticsearch gem排序搜索结果

[英]Sorting search results with mongoid-elasticsearch gem

我正在尝试对搜索进行排序。 我正在使用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

此配置不会引起任何错误,但是它似乎也不起作用,因为搜索结果是随机列出的。

我认为我正在根据文档实施配置:

在此处查看mongoid-elasticsearch文档

在此处查看elasticsearch文档

我的搜索查询顺便说一句是:

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

您应该删除数组包装器:

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

用与Elasticsearch本身相同的方式

ActivityLog.es.search({
  body: {
    query: {
      query_string: {
        query: params[:search]
      }
    },
    sort: [
        {created_at: {order: "asc"}},
    ]
  })

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM