ruby-on-rails - 使用 mongoid-elasticsearch gem 对搜索结果进行排序

标签 ruby-on-rails ruby ruby-on-rails-4 elasticsearch mongoid

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

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

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

最佳答案

您应该删除数组包装器:

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

关于ruby-on-rails - 使用 mongoid-elasticsearch gem 对搜索结果进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21430601/

相关文章:

ruby-on-rails - 如何在 Rails 7.0 中使用 Bootstrap 图标?

ruby-on-rails - Sidekiq 作业应该持续多长时间?

ruby-on-rails-4 - Rails : How do I prepopulate a text field in Rails?

sql - 在无关列上的 Postgresql 错误中选择 Distinct

ruby-on-rails - 在 Rails 中,如何将新对象替换为现有对象?

ruby-on-rails - 如何使类\对象在rails中全局可用?

ruby-on-rails - 无法运行 gem 命令并使用 zlib 支持构建 ruby

java - 使用 JRuby 连接到 MS SQL Server

ruby-on-rails - Rails,类中未定义的方法但存在方法

ruby-on-rails - Rails 4 使用多个 URL 参数测试嵌套资源