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 で Tire を使用しています。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 に答える