在SOLR中基于时间对场进行过滤和提升

时间:2017-10-16 07:17:39

标签: database datetime solr

我想根据字段值对文档进行过滤和提升,该字段值取决于在时间范围内收集的数据。

实施例。 我正在与多个供应商打交道,为我提供货物。 假设有3家供应商,他们有不同的时间可以出售他们的商品。我想要基于特定产品的供应商列表,我想提升现在可以销售产品的供应商。

我有这样的信息:

  1. 供应商不在任何星期日出售
  2. 一定会在星期一下午2点到4点出售
  3. 其余的时间,我不确定它们是否可以销售产品,所以我不会提高他们的结果。

    我应该如何存储此信息并在solr查询中使用结果?

1 个答案:

答案 0 :(得分:0)

您可以将可用性(或单独的字段不可用)映射为整数,可能是以小时分辨率。所以,如果星期一是你的星期开始,你可以有14,15,16作为第二个条件的可用性。然后你只需用standard number or range search来提升。 (可用性:15或可用性[14至16]。

对于更复杂的搜索,有一种技巧可以使用地理过滤来处理这些事情。

您基本上将您的可用性(或单独的字段不可用)映射为某个空间中的x,y坐标。就像日历中的一个盒子。所以,你周日到周六的X是0-6,你的小时是0-24。然后,条件2是1,14-1,16矩形,并将当前时间映射到相同的概念,并查看您的点是否在提升查询中的任何矩形内。

基本上,您决定粒度并将时间映射到数字或矩形。