天蓝色搜索服务和营业时间

时间:2015-09-02 10:10:15

标签: c# azure azure-search

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

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

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

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

1 个答案:

答案 0 :(得分:3)

这种方法可行。这是一种使用一个字段而不是28字段的替代方法: 让我们说你的所有打开/关闭时间都在1小时的边界上(当然,相同的方法适用于30分钟或15分钟的边界)。 对于每家酒店,生成描述酒店当时是开放还是关闭的所有间隔的条款:" Mon12AM关闭"," Mon1AM关闭",...," Mon6AMOpened&#34 ;,...," Tue12AMClosed",.....将所有这些术语索引到字符串集合字段中。在查询时,将当前时间映射到适当的时间间隔(例如" Wed12PMOpen"以确定哪些酒店在星期三中午12点 - 下午1点开放),并使用类似于以下的过滤表达式:

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

HTH, 尤金