我目前正在使用rails 3.1,sphinx和思考sphinx作为我的搜索应用程序。
我的模型有两个字段,我将其定义为sphinx属性:
define_index do
has availability_period # number of days
has availability_date
end
我想在此可用日期进行搜索,因此我正在使用像这样定义的sphinx范围
# search by date e.g av_date = '01. Feb 2012'
# find items that are availabile for that date
sphinx_scope(:by_date){ |av_date|
search_date = (Time.now-2.years)..av_date
{
:with => { :availability_date => search_date}
}
}
但是,item有几天的availability_period,所以我想实际添加这几天的查询次数。
所以我们假设这样的事情:
item 1: {availability_date: '10. Jan 2012', availability_period: 14}
item 2: {availability_date: '10. Feb 2012', availability_period: 30}
现在我正在寻找'01之间的物品。 2011年1月' - '2012年2月30日'},我想只找到项目#1,而不是项目#2,因为10. 2月+ 30天给出10月3日,这超出了我的范围。