Максимальная длина строки, хранящейся в App Engine?

При хранении полей String с App Engine:

  • Каков максимальный length() для String, который используется в приложении Engine хранилище данных может обрабатываться?
  • Также, если используется Objectify, эта максимальная длина одинакова или Objectify выполняет некоторую обработку, которая влияет на эту максимальную длину?

Ответ 1

Objectify автоматически преобразует строки из более чем 500 символов в собственное хранилище Text. Будьте осторожны, если вы индексируете строки; Текстовые объекты не индексируются, поэтому символы String > 500 будут неиндексированы.

Ответ 2

Я думаю, что ответы на этот вопрос устарели, поэтому я обновляюсь. Я использую GAE версии 1.9.22 и получил это в журналах ошибок:

Строковые свойства должны быть 1500 байт или меньше. Вместо этого используйте com.google.appengine.api.datastore.Text, который может хранить строки любой длины.

Использование com.google.appengine.api.datastore.Text хорошо работает, преобразовывая объект String в Text (например, новый текст (thisString) на стороне сервера вашего кода. библиотеки в com.google.appengine.api.datastore. * не работают на стороне клиента. Класс не найден.

Ответ 3

Per документация, 500 символов. И нет, Objectify - это оболочка и не изменяет ваши данные, поэтому ограничения размера данных не изменяются.

Ответ 4

Основываясь на обновлениях документации Google Datastore от октября 2016 года, вот пределы

Максимальный размер индексированного свойства строки UTF-8: 1,500 байт

Максимальный размер для неиндексированного свойства: 1,048,487 байт (1 MiB - 89 байт)

Таким образом, вы можете хранить строки, близкие к размеру 1 МБ, в неиндексированном свойстве String.