我试图了解Firestore是如何在字段上创建索引的。给定以下示例文档,如何创建索引,特别是对于映射/数组?

我曾多次在云修复中的索引类型上阅读文档,但我仍然不确定。上面写着:
默认情况下,Cloud自动维护文档中的每个字段和地图中的每个子字段的单字段索引。云修复对单字段索引使用以下默认设置:
如果我正确理解了这一点,那么就会为这些字段中的每个字段,甚至为alternate_names数组中的值创建一个索引。
因此,如果我想搜索fields.alternate_names包含值为(例如) "Caofang“的任何文档,Firestore将使用索引进行搜索。
我的假设/理解正确吗?
发布于 2019-05-12 18:00:45
不,你的理解不对。fields.alternate_names是映射字段中的数组子字段,这意味着它不能满足第二点的要求。您可以通过发出查询来测试您的假设。如果查询失败,您将在错误消息中看到它由于缺少索引而失败。
Firestore将根本不允许没有索引的查询。来自该失败的错误消息将包含到控制台的链接,该链接将允许您创建该查询所需的索引(如果可能的话)。
如果您希望能够查询fields.alternate_names的内容,请考虑将其提升到它自己的顶级字段,默认情况下将对其进行索引。
https://stackoverflow.com/questions/56101939
复制相似问题