2012年06月26日

indexed=False にすると composite index(index.yaml)すら使えなくなる件

GAE では不必要な index は作らないというのが鉄則で、
class Hoge(db.Model):
  foo = db.StringProperty(indexed=False);
  sort = db.IntegerProperty(indexed=False);
という感じで indexed=False と書きまくりたいところなのですが、こうやってしまうと index.yaml に
- kind: Hoge
  properties:
  - name: foo
  - name: sort
などとやって、
SELECT * FROM Hoge WHERE name = 'xxx' ORDER BY sort
な感じの query を扱おうと思っても
PropertyError: Property 'name' is not indexed
なエラーが表示されてうまくいきません。
必要なのは name と order を組み合わせた index であって、name のみの index ではないはずなのですが、現在の仕様ではそんな柔軟なことにはなっていないようです。。。

http://code.google.com/p/googleappengine/issues/detail?id=4231

を見ると、2012/04/12
Issue escalated to the engineering team.
とのことなので、近々、対応されるのかもしれません。
posted by おちエン at 03:53| Comment(0) | GAE | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

×

この広告は1年以上新しい記事の投稿がないブログに表示されております。