azure 搜索服务和开放时间

azure search service and opening hours

考虑同样的情况,Microsoft 在他们的 azure 搜索示例中使用 - 酒店搜索系统,但 azure 搜索应该为打开的酒店提供过滤器。

关于如何存储关于营业时间的信息(源模型包含每天的两个时间间隔 - before/after 午餐)以用于过滤器的任何想法?

我发现的最简单的解决方案(绝对不是最漂亮的解决方案)是为每一天创建字段,包括时间间隔以及开始和停止时间戳(仅输入时间)。然后在过滤器参数中使用适当的日期值和当前时间。整个解决方案需要创建 7 x 2 x 2 个字段。

任何人有更好的解决方案,也许使用 Azure 搜索引擎的默认功能?

这种方法行得通。这是使用一个字段而不是 28 个字段的替代方法: 假设您所有的开/关时间都在 1 小时的界限内(当然,同样的方法也适用于 30 分钟或 15 分钟的界限)。 对于每家酒店,为描述酒店当时是开门还是关门的所有时间间隔生成术语:"Mon12AMClosed"、"Mon1AMClosed"、...、"Mon6AMOpened"、...、"Tue12AMClosed",..... 将所有这些术语索引到一个字符串集合字段中。在查询的时候,将当前时间映射到合适的区间(比如"Wed12PMOpen"找出周三中午12点-下午1点区间有哪些酒店开门),使用类似于:

的过滤表达式

$filter = intervals/any(t: t eq "Wed12PMOpen")

HTH, 尤金