比较运算符在思考Sphinx

时间:2014-12-06 12:18:45

标签: ruby-on-rails thinking-sphinx

我有一个名为start_date和end_date的模型。我有搜索表单,用户将在此处输入日期,如果日期在start_date和end_date之间,我应该从模型中获取数据。

我应该如何用思考sphinx创建一个查询。

1 个答案:

答案 0 :(得分:2)

您需要执行以下操作:

  • 将start_date和end_date添加为attributes(不是字段)到模型的Sphinx索引。
  • 将表格参数转换为日期或时间值
  • 使用范围filters限制搜索查询。

我选择了非常大的时间窗口,但基本上这可以确保给定日期等于或大于开始日期小于或等于结束日期。

beginning, ending = Time.utc(1970), Time.utc(2030)
Model.search :with => {
  :start_date => beginning..date_from_params,
  :end_date   => date_from_params..ending
}