3

Google AppEngineのpythonsdkは、データストアに永続化できるオブジェクトに動的プロパティを追加するために使用できるExpandoタイプのオブジェクトを提供します。

また、アプリエンジンでは、オブジェクトを検索または並べ替える必要のあるプロパティについて、アプリをGoogleのサーバーにアップロードする前にインデックスを作成する必要があります。これは、ユーザーがオブジェクトにどのプロパティを作成するかを事前に知っているはずなので、本当に奇妙です。それを事前に知っていた場合、既存のモデルで静的プロパティとして定義しないのはなぜですか?

App Engineにアップロードした、Expandoモデルの動的プロパティのインデックスを自動的に作成する方法を知っている人はいますか?そうでない場合は、検索または並べ替えが可能な新しいプロパティを作成できず、検索または並べ替えができないプロパティのみを作成できないのに、gaeがExpandoを動的構造として宣伝する理由を誰かに教えてもらえますか。

4

1 に答える 1

4

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

  1. 並べ替え順序や不等式フィルターを使用せずに、等式フィルターのみを使用します。
  2. 他のフィルターを使用せずに、1 つのフィールドに不等式フィルターまたは並べ替え順序を設定します。

不等式フィルターと等式フィルターを組み合わせたものなど、より複雑なクエリを実行する場合にのみ、カスタム インデックスを作成する必要があります。

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

于 2011-01-27T03:42:06.597 に答える