0

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

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

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

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

4

1 回答 1

3

这种方法会奏效。这是使用一个字段而不是 28 个字段的另一种方法:假设您所有的打开/关闭时间都在 1 小时的边界上(当然,同样的方法适用于 30 分钟或 15 分钟的边界)。对于每家酒店,为所有时间间隔生成描述该酒店当时是营业还是关闭的术语:“Mon12AMClosed”、“Mon1AMClosed”、...、“Mon6AMOpened”、...、“Tue12AMClosed”、.....将所有这些术语索引到一个字符串集合字段中。在查询时间,将当前时间映射到适当的时间间隔(例如“Wed12PMOpen”以找出哪些酒店在 Wed 在 12PM - 1PM 的时间间隔内营业),并使用类似于以下的过滤器表达式:

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

HTH,尤金

于 2015-09-02T18:35:40.920 回答