AppSearchSchema.Builder.AddParentType(String) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ポリモーフィズムのスキーマ型に親型を追加して、スキーマ型が parentSchemaType のサブタイプと見なされるようにします。
[Android.Runtime.Register("addParentType", "(Ljava/lang/String;)Landroid/app/appsearch/AppSearchSchema$Builder;", "", ApiSince=35)]
public Android.App.AppSearch.AppSearchSchema.Builder AddParentType(string parentSchemaType);
[<Android.Runtime.Register("addParentType", "(Ljava/lang/String;)Landroid/app/appsearch/AppSearchSchema$Builder;", "", ApiSince=35)>]
member this.AddParentType : string -> Android.App.AppSearch.AppSearchSchema.Builder
パラメーター
- parentSchemaType
- String
返品
- 属性
注釈
ポリモーフィズムのスキーマ型に親型を追加して、スキーマ型が parentSchemaType のサブタイプと見なされるようにします。 サブタイプの関係は自動的に推移的と見なされるため、呼び出し元は直接の親を提供する必要があります。 具体的には、T1 <: T2 および T2 <: T3 がわかっている場合は、T1 <: T3 が自動的に推論されます。ここで、 <: はサブタイプシンボルです。 ポリモーフィズムは現在、次の方法でサポートされています。親型の検索フィルターも自動的に子型に拡張されます。 たとえば、Artist <: Person の場合、ユーザー型のフィルターを含む検索 (SearchSpec.Builder.addFilterSchemas を呼び出すことによって) も検索結果に Artist 型のドキュメントが含まれます。 プロジェクション API では、親型に指定されたプロジェクトへのプロパティ パスも自動的に子型に拡張されます。 プロジェクション API で親型とその子型の両方が指定されている場合、親型のパスは子型にマージされます。 プロジェクションの詳細については、「SearchSpec.Builder.addProjection」を参照してください。 型 U として定義されたドキュメント プロパティは、T <: U である限り T 型のドキュメントで設定できますが、インデックスは定義された型 (U) にのみ基づくことに注意してください。たとえば、"Company" 型のドキュメントで、"Person" 型の "employees" フィールドを繰り返し使用するとします。 "Artist" が "Person" のサブタイプである限り、"Person" 型または "Artist" 型、またはその両方の従業員をこのプロパティに追加できます。 ただし、"Employees" プロパティのインデックスは、"Artist" 型の追加ドキュメントであっても、"Person" で定義されているものに基づいて行われます。 サブタイプは、次の要件を満たしている必要があります。 要件に違反すると、AppSearchSession.setSchema は、AppSearchResult.RESULT_INVALID_ARGUMENTの結果コードと共に AppSearchException をスローします。 「アーティスト」タイプと「人物」タイプを考えると、Artist は Person のサブタイプであると主張します。次に、Person のすべてのプロパティに、同じ名前の Artist の対応するプロパティが必要です。 Person のすべてのドキュメント以外のプロパティは、Artist の対応するプロパティの型と同じ型である必要があります。 たとえば、"age" が Person の整数プロパティの場合、"age" も文字列ではなく Artist の整数プロパティである必要があります。 Artist のすべてのドキュメント プロパティのスキーマ型は、Person の対応するドキュメント プロパティのスキーマ型のサブタイプである必要があります (Person にそのようなプロパティが存在する場合)。 たとえば、"awards" が Award in Person 型のドキュメント プロパティである場合、Artist の "awards" プロパティの型は、ArtAward など、Award のサブタイプである必要があります。 すべての型がそれ自体のサブタイプであることに注意してください。 Artist のすべてのプロパティは、Person の対応するプロパティのカーディナリティ以上のカーディナリティを持つ必要があります (そのようなプロパティが Person に存在する場合)。 たとえば、"awards" がカーディナリティの人物 OPTIONAL のプロパティの場合、Artist の "awards" プロパティのカーディナリティは REQUIRED または OPTIONAL にのみできます。 規則: 省略可能な<繰り返<必要です。 Artist の対応するプロパティ (インデックスの種類、トークナイザーの種類など) に対するその他の適用はありません。これらの設定は安全にオーバーライドできます。 複数の親を持つ型を定義できますが、上記の規則に基づいて各親と互換性がある必要があります。 たとえば、LocalBusiness が Place と Organization の両方のサブタイプとして定義されている場合、LocalBusiness と Place の互換性と、LocalBusiness と Organization の互換性の両方がチェックされます。
android.app.appsearch.AppSearchSchema.Builder.addParentTypeの Android リファレンス。
このページの一部は、Androidオープンソースプロジェクトによって作成および共有された作業に基づく変更でありCreative Commons 2.5属性ライセンスに記載されている条件に従って使用されます。