2010-12-18 4 views
1

私は が、私はこのようなことを行うことができないことを意味するエンティティあたり5000個のインデックスエントリの制限があることを知っている:Google App Engineのリストのプロパティがエンティティごとのインデックスエントリにどのように影響しますか?

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(各リストの長さの合計)ですか?または 他に何か?

答えて

2

これは例外ではありません。200個のインデックスエントリが作成されます。

コンポジットインデックスでは、一意の値の組み合わせにつき1つのインデックス行が作成されますが、組み込みインデックスは値ごとに1つのインデックス行を作成します。あなたのモデルのすべてのプロパティ。

+0

優れています。おかげでニック! – ryan

関連する問題