語言

AppSearchSchema.Builder.AddParentType(String) 方法

定義

在多態性模式下,為結構型態新增父型態,使該型態被視為 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,其中 <: 為子型符號。 目前多型性支援方式如下:父型態的搜尋篩選器也會自動擴展到子型別。 例如,若為藝術家 <:人物,則透過呼叫 SearchSpec.Builder.addFilterSchemas ,並以 Person 類型進行篩選,搜尋結果中也會包含藝術家類型的文件。 在投影 API 中,父型別指定的專案屬性路徑也會自動擴展到子類型。 如果投影 API 中同時指定了父類型及其子類型,父類型的路徑會合併到子類型的路徑中。 欲了解更多投影細節,請參閱 SearchSpec.Builder.addProjection。 定義為 U 型別的文件屬性允許與型別 T 的文件相符,只要 T <: U,但該索引僅基於定義型別 U。例如,考慮一份類型為「Company」的文件,重複出現的「員工」欄位為「Person」。 我們可以在此物業新增「Person」或「Artist」或兩者皆可的員工,只要「Artist」是「Person」的子類型。 不過,「員工」屬性的索引會根據「個人」中的定義,即使是額外的「藝術家」類型文件也是如此。 子類型必須符合以下條件。 違反要求將導致 AppSearchSession.setSchema 拋出 AppSearchException,結果碼為 AppSearchResult.RESULT_INVALID_ARGUMENT。 考慮一個類型藝術家和一個類型人物,而藝術家聲稱自己是人物的子類型,那麼:人格中的每個屬性必須有對應的藝術家屬性且名稱相同。 Person中每個非文件屬性的類型必須與Artist中對應屬性的類型相同。 例如,若「age」在 Person 中是整數屬性,那麼「age」在 Artist 中也必須是整數屬性,而非字串。 Artist 中每個文件屬性的結構型態必須是 Person 中對應文件屬性的結構型態的子型態,若 Person 中存在該屬性。 例如,如果「awards」是「Award in Person」類型的文件屬性,那麼「awards」屬性在藝術家中的類型必須是 Award(獎項)的子類型,例如 ArtAward。 請注意,每個類型都是自身的子類型。 藝術家中的每個屬性必須有一個嚴格於或等於 Person 中對應屬性的基數,若 Person 中存在該性質。 例如,若「獎項」是人格中基數為可選性質,那麼藝術家中「獎項」屬性的基數只能是必須或可選。 規則:必須 < 選擇 < 重複。 Artist 對應屬性(如索引類型、分詞器類型等)沒有其他強制措施。這些設定可以安全覆寫。 一個型別可以定義為有多個父,但必須根據上述規則與每個父節點相容。 例如,若 LocalBusiness 被定義為 Place 與 Organization 的子類型,則 LocalBusiness 與 Place 及 Local Business 與 Organization 的相容性都會被檢查。

Android 參考資料。android.app.appsearch.AppSearchSchema.Builder.addParentType

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於