【问题标题】:Max length of String stored with App Engine?使用 App Engine 存储的字符串的最大长度?
【发布时间】:2012-09-27 18:28:03
【问题描述】:

使用 App Engine 存储 String 字段时:

  • App Engine 的String 中的最大length() 是多少 datastore 可以处理吗?
  • 此外,如果使用 Objectify,此最大长度是否相同,或者 Objectify 是否进行了一些影响此最大长度的处理?

【问题讨论】:

    标签: java google-app-engine objectify


    【解决方案1】:

    Objectify 会自动将超过 500 个字符的字符串转换为原生文本存储。如果要索引字符串,请小心;文本对象未编入索引,因此大于 500 个字符的字符串将未编入索引。

    【讨论】:

    • 如果 String 为 >500 char 且已编入索引,则显示保存将失败。 com.googlecode.objectify.SaveException:保存调用信息时出错=:在路径“注释”处:请求索引无法索引的值:。有解决办法吗?
    【解决方案2】:

    我认为对此的回复已经过时,所以我正在更新。我使用的是 GAE 1.9.22 版,并在错误日志中收到了这个:

    字符串属性必须为 1500 字节或更少。而是使用 com.google.appengine.api.datastore.Text,它可以存储任意长度的字符串。

    使用 com.google.appengine.api.datastore.Text 可以很好地将 String 对象转换为 Text(例如,代码的服务器端上的 new Text(thisString)。任何对com.google.appengine.api.datastore.* 中的库无法在客户端运行。找不到类。

    【讨论】:

      【解决方案3】:

      每个the documentation,500 个字符。不,Objectify 是一个包装器,不会修改您的数据,因此数据大小限制没有改变。

      【讨论】:

        【解决方案4】:

        根据 2016 年 10 月对 Google 数据存储区文档的更新,以下是限制

        索引字符串属性的 UTF-8 编码的最大大小:1,500 字节

        未索引属性的最大大小:1,048,487 字节(1 MiB - 89 字节)

        因此,您可以将大小接近 1MB 的字符串存储在未编入索引的 String 属性中。

        【讨论】:

          猜你喜欢
          • 2016-06-18
          • 1970-01-01
          • 2016-11-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-04-12
          • 2016-05-03
          相关资源
          最近更新 更多