太阳黑子索引搜索和范围数据索引

时间:2015-12-30 18:37:46

标签: solr sunspot sunspot-solr

我正在为我的用户存储可用性时间,他们为每周的每一天输入他们可用的时间

例如 - X先生可以在

上找到
  1. 周日2-5,8-12,15-18
  2. 星期一为1-3,5-8,10-12
  3. 等整个星期
  4. 在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
    

1 个答案:

答案 0 :(得分: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)查询该字段,以查找匹配的人员。