BadValueError:索引值message_text必须至多为1500个字节

时间:2015-10-01 11:41:38

标签: python google-app-engine google-cloud-datastore

我将HTML存储在实体的属性中。我现在面临的问题是HTML的大小可能大于1500字节。我是否在推动Google Cloud Datastore的界限?

我在模型中使用TextProperty

class Article(ndb.Model):
    title = ndb.StringProperty()
    author = ndb.StringProperty()
    content = ndb.TextProperty()
    date_created = ndb.DateTimeProperty(auto_now_add=True)
    date_modified = ndb.DateTimeProperty(auto_now=True)

问题1

我应该考虑将html存储在Google云端存储中还是其他一些选项?

问题2

是否可以增加给定实体的索引值的大小?

1 个答案:

答案 0 :(得分:4)

对于大于1500字节的字符串值使用TextProperty是正确的,但TextProperty无法编入索引并且存在问题。

  

class TextProperty()

     

长串。

     

与StringProperty不同,TextProperty值可以超过1500   字节长。 但是,TextProperty值未编入索引且无法编制索引   用于过滤器或排序订单。

     

TextProperty值使用文本编码存储文本。对于二进制数据,   使用BlobProperty。

     

如果text属性是必需的,则其值不能为空字符串。

  

是否可以增加给定实体的索引值的大小?

没有。可以索引短字符串,因为它们很短。

  

我应该考虑将html存储在Google云端存储中还是其他一些选项?

如果它只是1个html,我建议你把它写到一个文件中。

如果不是真的需要,你当然也不能索引TextProperty。