1

エンティティごとに5000のインデックスエントリの制限があることを知っています。つまり、次のようなことはできません。

class Foo(db.Model):
   x = db.ListProperty(int)
   y = db.ListProperty(int)

foo1 = Foo(x = range(5001))
foo1.put()

さらに、index.yamlにインデックスがある場合

- kind: Foo
 properties:
 - name: x
 - name: y

次に、このスレッドからもわかります。

http://groups.google.com/group/google-appengine/browse_thread/thread/d5f4dcb7d00ed4c6

私はこれを行うことはできません:

foo2 = Foo(x = range(100), y=range(100))
foo2.put()

10,000個のインデックスエントリが得られるからです。

ただし、私の質問は次のとおりです。Fooのindex.yamlにエントリがない場合は、次のことを試してください。

foo3 = Foo(x = range(100), y=range(100))
foo3.put()

それでも「BadRequestError:エンティティのインデックス付きプロパティが多すぎます」という例外が発生しますか?私のテストからは、エラーは発生しないようです。これは正しいです?この場合、foo3にはいくつのインデックスエントリがありますか?200(各リストの長さの合計)ですか?または、他の何か?

4

1 に答える 1

2

その通りです。これにより例外は発生せず、200 のインデックス エントリが作成されます。

これが複合インデックスで機能する方法は、値の一意の組み合わせごとに 1 つのインデックス行が作成されるのに対し、組み込みインデックスは値ごとに 1 つのインデックス行を作成することです。モデル。

于 2010-12-19T23:22:55.060 に答える