Cloud Datastore 提供两种类型的索引
内置索引 -
这些是 Cloud Datastore 为每种实体类型的每个属性自动创建的索引。这些内置索引是单属性索引,适用于简单查询。
综合指数 -
复合索引是由用户而非 Cloud Datastore 自动构建的手动索引。这些是多属性索引。涉及使用两个或多个属性过滤数据的复杂查询需要复合索引。要构建复合索引,需要配置一个 index.yaml 文件,然后通过运行以下命令创建它 -
gcloud datastore indexes create ~/path/to/index.yaml/file
现在来到您的用例 -
由于您要根据两个以上的属性过滤数据,因此您不能使用内置索引。所以你必须使用复合或手动索引。为此,您需要定义一个索引配置文件并如上所述部署它。您希望根据特定时间段结合一个或多个属性来过滤数据。因此,对于用例,以下索引配置文件应该可以正常工作。
index.yaml
indexes:
- kind: demo
properties:
- name: attribute1
direction: asc
- name: attribute2
direction: asc
- name: attribute3
direction: asc
- name: timestamp
direction: asc
在上面的配置文件中,该direction
属性是可选的,如果你不指定它,它会默认将它作为升序(asc)。对于降序排序,您可以将其指定为desc
. 这将通过组合配置文件中提到的两个或多个属性来过滤数据。您可以浏览此页面以了解有关 Cloud Datastore 中的索引的更多信息。
请注意,基于索引的查询机制支持范围广泛的查询,适用于大多数应用程序。Datastore 查询仍然存在一些限制或限制。我建议您浏览此页面以了解有关在 Cloud Datastore 中查询时的限制的更多信息。