1

给定名为 Post 的模型上的以下映射,是否可以构建一个查询来返回按特定时间范围内(例如过去 7 天)投票数排序的帖子?

mapping do
   indexes :id, type: 'integer'
   indexes :user_id, type: 'integer'
   indexes :name, boost: 10
   indexes :body # analyzer: 'snowball'
   indexes :created_at, type: 'date'
   indexes :vote_count, type: 'integer'

   indexes :topic_ids

   indexes :topics do
       indexes :id, type: 'integer'
       indexes :name, type: 'string'
    end

   indexes :votes do
       indexes :user_id, type: 'integer'
       indexes :created_at, type: 'date'
   end
end

我在 Rails 3.2.13 中使用轮胎。我有一个 Post 模型和一个 Vote 模型。一个帖子有很多票,一个投票属于帖子。

4

1 回答 1

0

是的,您可以按属性排序,也可以vote_count使用custom_score查询进行细粒度的相关性计算。

对于前者,类似于:

require 'tire'

s = Tire.search do
  query do
    filtered do
      query { all }
      filter :range, 'created_at' => { from: '-7d' }
    end
  end
  sort do
    by :vote_count
  end
end

puts s.to_curl
于 2013-06-10T11:07:13.503 回答