2017-04-24 66 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。但這在我看來似乎是一個醜陋的解決方案。

我認爲如果您在午夜時間內添加一個新的時間爲秒數(或分鐘數)的字段,性能和可用性會好得多。