【发布时间】:2011-07-19 08:30:47
【问题描述】:
我在按日期范围连接条件 OR 和 filterint 时遇到问题。 类似的东西
#pseudo SQL syntax
(@date_start < params[:date_to_search] < @date_end) && (@every_day==1 || @day_of_week== params[:day])
--
class OfferTime < ActiveRecord::Base
define_index do
indexes every_day #boolean
indexes day_of_week #string eg. Tue, Mon etc
has date_start #Date NOT datetime
has date_end #Date
end
end
要进行有条件的 OR,我使用以下解决方案: Conditional "or" in Thinking Sphinx search
这很好用。
(OfferTime.search "@every_day 1 | @day_of_week Tue", :match_mode => :extended).size
# => 2
# Correct answer
但我不知道如何将其与该日期范围联系起来
(@date_start < params[:date_to_search] < @date_end)
例子:
(OfferTime.search "@every_day 1 | @day_of_week Tue & @date_start < #{1.year.ago}", :match_mode => :extended).size
# => 1
# wrong answer! should be 0!
ThinkingSphinx 可以做到这一点吗?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 sphinx thinking-sphinx