【问题标题】:Sunspot solr index search and index on range dataSunspot solr 索引搜索和范围数据索引
【发布时间】:2015-12-30 18:37:45
【问题描述】:

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

例如 - 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

【问题讨论】:

  • 你的搜索条件是什么?和预期的结果?
  • @EricWang 使用类似的数据库查询更新问题以进行搜索

标签: solr sunspot sunspot-solr


【解决方案1】:

使用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)查询该字段以查找匹配的人员。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-21
    • 2012-07-03
    • 2012-07-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多