簡體   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