2014-12-06 95 views
-1

我有一个模型的属性start_date和end_date。我有搜索表单,用户将放置日期,如果日期在start_date和end_date之间,我应该从模型中获取数据。比较运算符思维Sphinix

我应该如何用思维狮身人面像来创建一个查询。

回答

2

您将需要做类似如下:

  • 添加两个起始日期日期和结束日期为attributes(不域)到模型中的狮身人面像指数。
  • 将表单参数转换为日期或时间值
  • 使用范围filters限制搜索查询。

我选择了非常大窗户的时间,但本质上这确保了给定的日期是大于或等于开始日期更大,小于或等于结束日期。

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

thanks pat。这帮了我。 是否有将sql查询添加到ThinkingSphinx :: Search结果中的方法。 – 2014-12-10 10:53:21

+0

您可以通过一些选项发送结果SQL查询 - ':include',':joins',':select',':order',如文档中所述:http://pat.github.io/thinking -sphinx/searching.html#advanced - 但是没有任何选项可以添加到WHERE子句中(不管怎么说都不会推荐它 - 它会搞砸Sphinx的分页逻辑)。 – pat 2014-12-10 22:48:24

+0

好的。我明白。谢谢 – 2014-12-19 07:19:40