使用ruby进行solr查询 - 需要比较日期时间

时间:2009-06-11 14:42:14

标签: sql ruby-on-rails solr

我的Lucene / Solr数据库包含一个日期列(created_at),我需要将其用作查询中的条件。

我是RoR的新手,并假设RoR在anyObject.save上自动使用自己的日期对象,而Solr依次以自己的方式重新索引该列。

无论如何,日期采用以下格式:“2008-06-03 11:15:20”

我可以编写一个快速解析器来将我的查询字符串解析为上面的格式,但是当我查询

Object.find(keyword:foo created_at> ='2008-06-03 11:15:20')

Solr抛出解析错误。我已经尝试了几种标准变体而没有成功。有什么建议吗?

1 个答案:

答案 0 :(得分:2)

我讨厌问这个显而易见的问题,但你有没有检查solr docs查询语言的日期?

http://wiki.apache.org/solr/SolrQuerySyntax

并且经验表明“> =”不是有效的solr运算符。您可以对日期字段执行范围查询,但在示例查询中使用正确的格式为:

Object.find("keyword:foo AND created_at:[2008-06-03T11:15:20.000Z TO *]")