2015-12-30 82 views
0

我存儲的可用性時間爲我的用戶,他們對於一週的每一天什麼時機,他們將可太陽黑子Solr的索引搜索和索引的數據範圍

例如輸入 - X先生將可在

  1. 星期日爲2-5,8-12,15-18
  2. 星期一1-3,5-8,10-12
  3. 等整個周

什麼是索引的最佳方式和Solr的

用於搜索這樣的數據集將會像

select * from schedule inner join days on schedule.day_id = days.id 
where days.name = 'Sunday' and schedule.start>=5 and schedule.end>=8 
+0

什麼是您的搜索條件?和預期的結果? –

+0

@EricWang更新了與搜索相同的數據庫查詢的問題 – chirag7jain

回答

0

使用the DateRangeField which became available in Solr5搜索該數據的數據庫查詢。這允許您查詢包含與您的查詢時間匹配的範圍的文檔。

fq={!field f=dateRange op=Contains}[2013 TO 2018] 

Solr的5之前有Solr中a neat hack that uses the spatial support查詢重疊的持續時間(如果這點被包含在預期的時間範圍內,等)。

根據所需的分辨率,您還可以索引七個不同的字段(星期一至星期日),然後爲該人可用的每個小時索引一個整數。然後,您可以使用常規查詢(例如available_sunday:15)查詢該字段以查找匹配的人員。