2011-01-26 9 views
3

googleアプリケーションエンジンpython sdkは、データストアに永続化できるオブジェクトに動的プロパティを追加するために使用できるExpandoタイプのオブジェクトを提供します。Google Apps Engineのexpandoプロパティの自動インデックス(

アプリエンジンでは、オブジェクトを検索またはソートする必要のあるプロパティに対して、Googleのサーバーにアプリをアップロードする前にインデックスを作成する必要があります。これは、ユーザーが自分のオブジェクトに作成するプロパティを手前で知っていなければならないことを意味するので、実際には奇妙です。私がそれを前もって知っていたら、どうして私はそれらを既存のモデルの静的なプロパティとして定義しないのですか?

がアプリエンジンにアップロードされた後に、Expandoモデルの動的プロパティのインデックスを自動的に作成する方法を知っている人はいませんか??もしそうでなければ、誰かが私に検索エンジンやソート可能なプロパティだけを検索したり並べ替えたりできる新しいプロパティを作成させることができないときに、なぜExpandoを動的構造として宣伝するのか教えてもらえますか?

答えて

4

すべてのプロパティは、単純なクエリに対して自動的にインデックス付けされます。この場合の単純なクエリは、次のいずれかのクエリです。

  1. ソート順または不等式フィルタを使用しない等価フィルタのみを使用します。
  2. 単一のフィールドに不等号フィルタまたは並べ替え順序があり、他のフィルタはありません。

不等式と等価フィルタを混在させるなど、より複雑なクエリを実行する場合は、カスタムインデックスを作成する必要があります。

実行時にカスタムインデックスを作成することはできません。 expandosを使用する場合は、実行するクエリを上記のいずれかの状況で充足可能なクエリに制限する必要があります。

+0

SDKの実装を使用してカスタムインデックスをデプロイする方法はありますか?それは最善の方法ではありませんが、可能です。このようなものはお勧めですか? http://rahulswackyworld.blogspot.in/2010/03/dynamic-indexes-with-google-app-engine.html – anups

関連する問題