我使用GAE(java)和objectify来查询数据存储区。我有一个查询,其中将根据三个不同的属性过滤实体。由于它们被编入索引,因此工作正常。但我需要根据另一个属性对结果进行排序。所以我添加了像这样的复合索引
实体种类 - >
- fiterProperty1 asc
- fiterProperty2 asc
- fiterProperty3 asc
- sortingProperting desc
它也可以正常工作。但是我有六个以上的其他属性可以对查询进行排序。 (一次一个排序查询。一次不是全部六个)。所以问题是:
我可以添加复合索引的所有六种组合。是否会增加索引计数(从我到目前为止所读取的200是最大索引的限制)
我可以在单个复合索引中添加所有排序选项,例如
实体种类 - >
- fiterProperty1 asc
- fiterProperty2 asc
- fiterProperty3 asc
- sortingProperting1 desc
- sortingProperting2 desc
- sortingProperting3 desc
- sortingProperting4 desc
- sortingProperting5 desc
- sortingProperting6 desc
这会有效吗?我想减少写入次数和数据存储区的大小。我需要再次重新保存所有实体以测试查询是否有效。所以请帮助我避免一些开销。
到目前为止我读到的其他stackoverflow帖子: 查询所有实体并在代码中对其进行排序。这对我不起作用,因为我有超过10000个单一类型的实体。我不认为这也是一个可行的解决方案。