为什么只有18个项目我就会收到“实体的索引属性过多”错误?(Python)

6 投票
1 回答
2714 浏览
提问于 2025-04-17 04:15

我有一个列表属性

tag_list = db.StringListProperty()

到目前为止,这个功能一直正常,但今天当我尝试写一个包含18个项目的列表时,出现了Too many indexed properties for entity:的错误。我觉得这可能是“索引爆炸”的情况。

这是我的查询:

query = Main.all()
query.filter("url =", url)
query.filter("owner =", user)

根据文档,我的理解是,当列表中有超过2000个项目时,会触发这个错误。如果18个项目就触发了,那我到底哪里出错了,应该怎么解决呢?谢谢。

更新更多代码:

    query = Main.all()
    query.filter("url =", url)
    query.filter("owner =", user)

    e = query.get()

    if e:
        e.tag_list = user_tag_list
        e.pitch = pitch_original
        e.title = title_ascii
        e.put()

        main_id = e.key().id()

    else:
        try:
            new_item = Main(
                url = url,
                tag_list = user_tag_list,
                pitch = pitch_original,
                owner = user,
                #title = unicode(title, "utf-8"),
                title = title_ascii,
                display = True)
            #this is where the error occurs in the logs              
            new_item.put()

这是我的列表:

user_tag_list = [u'box', u'jquery', u'working', u'enter', u'initially', u'text', u'showing', u'javascript', u'overflow', u'focus', u'stack', u'field', u'impossible', u'input', u'hidden', u'element', u'toggling', u'toggled']

1 个回答

4

这是因为出现了指数膨胀的问题。

撰写回答