[英]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.