2017-04-24 133 views
1

我有一个结果列表:Solr,仅在日期时间字段中按时间搜索?

{ 
    entry: 'name1', 
    at: '2013-04-01 13:44:02' 
}, 
{ 
    entry: 'name2', 
    at: '2013-11-11 23:34:11' 
}, 
{ 
    entry: 'name3', 
    at: '2013-05-09 03:58:32' 
}, 

现在我想写导致安打'12搜索过滤条件:00:00' 和'14:00:00' ,在时间,以便过滤,不是日期,忽略日期本身。喜欢的东西:

at:[*T12:00:00Z TO *T14:00:00Z] 

回答

2

,那么你需要把时间只有信息在另一个领域,比如色调,使时间一个整数,12时44分32秒将是124432,然后你可以轻松地运行范围查询你需要的。

要创建时间字段,你有几种选择:

  1. 它从客户端本身添加到文档
  2. 使用copyField拷入时间字段,并使用PatternReplaceFilter删除值
  3. 的日期部分添加UpdateRequestProcessor

1或2是最容易通过远内的时间字段。

1

我看过一篇文章,你也可以使用regex to match a partial date。但这在我看来似乎是一个丑陋的解决方案。

我认为如果您在午夜时间内添加一个新的时间为秒数(或分钟数)的字段,性能和可用性会好得多。