Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Search 亚马逊云搜索-按时间和日期获取位置_Search_Data Modeling_Amazon Cloudsearch - Fatal编程技术网

Search 亚马逊云搜索-按时间和日期获取位置

Search 亚马逊云搜索-按时间和日期获取位置,search,data-modeling,amazon-cloudsearch,Search,Data Modeling,Amazon Cloudsearch,我正在使用Amazon CloudSearch来存储大量的位置。 每个地方一周中的每一天都有开放时间和关闭时间 我需要在当前时间检索位置。您建议如何对该指数进行建模? 我想通过创建7个文本索引来解决这个问题,在这些索引中,我为一周中的每一天指定了有效时间 例如,如果一个地方从上午9点到13点开放,我将在索引“monday”中写入字符串“9-10-11-12”。然后,通过bq=monday:'10'或bq=monday:'16'过滤,我将只拥有在指定时间打开的位置 还有别的想法吗?我的解决方案似乎

我正在使用Amazon CloudSearch来存储大量的位置。 每个地方一周中的每一天都有开放时间和关闭时间

我需要在当前时间检索位置。您建议如何对该指数进行建模? 我想通过创建7个文本索引来解决这个问题,在这些索引中,我为一周中的每一天指定了有效时间

例如,如果一个地方从上午9点到13点开放,我将在索引“monday”中写入字符串“9-10-11-12”。然后,通过bq=monday:'10'或bq=monday:'16'过滤,我将只拥有在指定时间打开的位置


还有别的想法吗?我的解决方案似乎有效,但会给我提供另一种方法?

首先,我不会使用多个索引

你可以使用你的方法,但只需从一周开始用小时计算时间。所以,周一是0-23,周二是24-47,等等。或者你可以有7个字段,“周一小时”,“周二小时”

您还可以使用uint,而不是字符串。不是更好,而是不同,可能值得进行基准测试

通过UINT,您可以使用范围查询。如果文档包含“打开”和“关闭”字段,并且您想知道它是否在10到12之间打开

&bq=(and open:..12 close:10..)
剩下的一个问题是CloudSearch的范围搜索是不可用的。因此,我认为如果商店在12点开门,这将显示一个假阳性。从技术上讲,范围重叠,但没有什么用处。为了解决这个问题,我会做两件事。首先,我不会以小时为单位,我会使用一天中的分钟作为字段中的值(0到1439)。然后将一个添加到起始范围,并从结束范围中减去一个

使用UINT与使用文本字段的效果不同。我肯定会对它们进行基准测试,看看哪一个更适合你