gpt4 book ai didi

architecture - solr:多值日期范围(代表营业时间)

转载 作者:行者123 更新时间:2023-12-04 21:23:38 26 4
gpt4 key购买 nike

考虑一个可能有多个营业时间的酒吧,具体取决于一周中的哪一天(+ 可能会关闭的一些特殊日子)

我希望能够查找当前打开的所有酒吧,并将在接下来的 3 小时内开放。 (或者可以问:'在 18-10-2011 从 7 到(至少)10 开放)

我认为最好的事情是每个日期都有一个“打开,关闭”元组(欢迎其他建议)

没有,据我所知?,在 1 个字段中结合了开放/关闭时间的字段类型,我可以天真地(但错误地)使用 2 个字段定义此结构:'open' 和 'closed',它们需要是多值的。

现在索引它们,如:

open: 2011-11-08:1800 - close: 2011-11-09:0300
open: 2011-11-09:1700 - close: 2011-11-10:0500
open: 2011-11-10:1700 - close: 2011-11-11:0300

查询将采用以下形式:
open < now && close > now+3h

但是由于没有办法表明“打开”和“关闭”是成对相关的,我会得到很多误报,例如,上面的文档将被返回:
open < 2011-11-09:0100 && close > 2011-11-09:0600

因为有些开放日期早于 2011-11-09:0100 (即: 2011-11-08:1800 )并且一些关闭在 2011-11-09:0600 之后(例如: 2011-11-11:0300 )但这些开盘和收盘日期不是成对相关的。

我一直在考虑使用 Solr 动态字段的完全不同的方法,其中每个开始和结束日期都有自己的动态字段,例如:
  • _date_2011-11-09_open: 1800
  • _date_2011-11-09_close: 0300
  • _date_2011-11-09_open: 1700
  • _date_2011-11-10_close: 0500
  • _date_2011-11-10_open: 1700
  • _date_2011-11-11_close: 0300

  • 然后,客户端应该知道要查询的日期,从而知道要查询的正确字段。这将解决问题,因为 startdate/enddate 也不是成对相关的,但我担心从性能的角度来看这可能是一个大问题(尤其是 Lucene fieldcache 的内存消耗)

    到目前为止,我还没有找到令人满意的解决方案。
    任何帮助高度赞赏。

    最佳答案

    在保持像我想要的 Bars 粒度(而不是 BarsxDate)的同时,可以使用实验性的 Lucene Spatial Playground 实现。

    用例+通用解决方案在这里:
    https://issues.apache.org/jira/browse/SOLR-2155?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=comment-13115244#comment-13115244

    关于architecture - solr:多值日期范围(代表营业时间),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7548439/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com