Ограничение индекса Firestore - PullRequest
0 голосов
/ 25 января 2019

Из документации Firestore, помимо прочего, имеет следующие ограничения:

  • Максимальное количество записей индекса для каждого документа: 40 000

  • Максимальная сумма размеров индексных записей документа: 8 МиБ

У меня возникают трудности с пониманием того, что документы означают здесь под «документом». Они относятся к одному документу или ко всему набору документов определенной коллекции?

Например, предположим, у меня есть коллекция, которая содержит 10 000 документов, и каждый документ содержит те же 2 поля:

Document: `students/00001`
  name: "Jeff"
  age: 32

Document: `students/00002`
  name: "Mary"
  age: 28

...

Document: `students/10000`
  name: "Anne"
  age: 45

Согласно документации, Firestore создаст один индекс для каждого поля в порядке возрастания и еще один индекс для каждого поля в порядке убывания. Таким образом, у нас будет 4 индекса для каждого документа и только те же 4 индекса для всей коллекции документов, поскольку все они имеют одинаковые поля.

Все хорошо.

Однако теперь предположим, что у меня есть коллекция, которая также содержит 10 000 документов, но где каждый документ содержит 2 поля, которые всегда отличаются друг от друга :

Document: `students/00001`
  B2DcG6g9w: true
  YwY3g642D: true

Document: `students/00002`
  A3h7k3e6B: true
  w2Fh0j1g8: true

...

Document: `students/10000`
  8n4545f7k: true
  j2hle4oOp: true

Firestore создаст один индекс для каждого поля в порядке возрастания и еще один индекс для каждого поля в порядке убывания. Таким образом, у нас будет только 4 индекса для каждого документа . Но поскольку эти индексы различны для каждого документа, у нас будет всего 40000 индексов для всех документов в коллекции .

Вопрос: Достиг ли я предела индекса в 40000 или нет? Это ограничение действительно по документу или по коллекции?

Ответы [ 2 ]

0 голосов
/ 25 января 2019

Для каждого поля или комбинации полей, которые вы индексируете в коллекции, создается один индекс.Каждый документ может присутствовать в 40 000 таких индексов.

0 голосов
/ 25 января 2019

Количество документов в сборнике не имеет отношения к заявленным лимитам.Документы, в которых отсутствует поле, не будут иметь индекс для этого поля.(Firestore не будет индексировать то, что не существует.) Вы можете удалить индексы , чтобы сэкономить место и деньги.

...