【发布时间】:2014-12-06 12:18:44
【问题描述】:
我有一个具有 start_date 和 end_date 属性的模型。我有搜索表单,用户将在其中输入日期,如果日期介于 start_date 和 end_date 之间,我应该从模型中获取数据。
我应该如何使用思考狮身人面像创建查询。
【问题讨论】:
标签: ruby-on-rails thinking-sphinx
我有一个具有 start_date 和 end_date 属性的模型。我有搜索表单,用户将在其中输入日期,如果日期介于 start_date 和 end_date 之间,我应该从模型中获取数据。
我应该如何使用思考狮身人面像创建查询。
【问题讨论】:
标签: ruby-on-rails thinking-sphinx
您需要执行以下操作:
我选择了非常大的时间窗口,但本质上这确保给定日期等于或大于开始日期并且小于或等于结束日期。
beginning, ending = Time.utc(1970), Time.utc(2030)
Model.search :with => {
:start_date => beginning..date_from_params,
:end_date => date_from_params..ending
}
【讨论】:
:include、:joins、:select、:order,如文档中所述:pat.github.io/thinking-sphinx/searching.html#advanced - 但事实并非如此没有任何选项可以添加到 WHERE 子句(无论如何都不推荐 - 它会破坏 Sphinx 的分页逻辑)。