簡體   English   中英

通過獅身人面像按年份搜索

[英]Search by year with Thinking Sphinx

我有很多主題的類別模型。 每個主題都有很多帖子。 帖子的字段為“評分”(浮動)和“ created_at”(DateTime)。

我正在使用Thinking Sphinx在類別中搜索不同的字段,並且試圖添加更復雜的搜索選項。

我只想為今年以來的帖子找到評分低於4.5的類別。 其他示例是查找2009年以來的帖子的評分高於6.7的類別。

到目前為止,我已經創建了這樣的索引:

indexes posts(:rating), as: :rating, type: :decimal
has 'SUM(rating)', as: :total_rating, type: :float

並可以使用以下方法獲得帶有帖子評分的類別:

Category.search(with: { total_rating: 0..4.5 })

但是我不知道是否有可能在給定年份限制用於“ total_rating”的帖子。

任何幫助,將不勝感激。

恐怕我不確定是否有一種優雅的方法。 我能想到的唯一選擇是在索引定義中如下所示:

(2008..Date.today.year).each do |year|
  has "SUM(CASE WHEN YEAR(posts.created_at) = #{year} THEN rating ELSE 0 END",
    as: "total_rating_for_#{year}".to_sym, type: :float
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM