JoinSpec 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
此類別代表搜尋中連接操作的規範。
[Android.Runtime.Register("android/app/appsearch/JoinSpec", ApiSince=34, DoNotGenerateAcw=true)]
public sealed class JoinSpec : Java.Lang.Object, Android.OS.IParcelable, IDisposable
[<Android.Runtime.Register("android/app/appsearch/JoinSpec", ApiSince=34, DoNotGenerateAcw=true)>]
type JoinSpec = class
inherit Object
interface IParcelable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 繼承
- 屬性
- 實作
備註
此類別代表搜尋中連接操作的規範。
連接僅適用於外層文件的限定 ID 與子查詢文件中的屬性值匹配。 在子查詢文件中,這些值可能會以屬性路徑(如「email.recipient.id」)或「entityId」或屬性表達式來引用。 其中一個屬性表達式是「this.qualifiedId()」,它指的是文件中組合的套件、資料庫、命名空間與 ID。
注意,為了執行該連接,所 #getChildPropertyExpression 指的性質必須是設定 AppSearchSchema.StringPropertyConfig#getJoinableValueType 為 AppSearchSchema.StringPropertyConfig#JOINABLE_VALUE_TYPE_QUALIFIED_ID的性質。 否則,任何文件都不會被連結到任何 SearchResult。
以這些外部查詢和子查詢結果為例:
{@code
Outer result {
id: id1
score: 5
}
Subquery result 1 {
id: id2
score: 2
entityId: pkg$db/ns#id1
notes: This is some doc
}
Subquery result 2 {
id: id3
score: 3
entityId: pkg$db/ns#id2
notes: This is another doc
}
}
在此範例中,子查詢結果 1 包含一個屬性「entityId」,其值為「pkg$db/ns#id1」,指的是外部結果。 如果你用「entityId」呼叫 Builder ,我們會從子文件中取得屬性「entityId」的值,該屬性為「pkg$db#ns/id1」。 假設外部結果的合格 ID 是「pkg$db#ns/id1」。 這表示子查詢結果 1 文件會與該父文件匹配。 這是透過將包含子文件的 加入 SearchResult 頂層父 SearchResult#getJoinedResults文件 來完成的。
如果 #getChildPropertyExpression 是「註記」,我們會在子查詢結果中檢查註解屬性的值。 在子查詢結果 1 中,這個值是「This is some doc」,這與外部查詢結果的合格 id 不相符。 因此,子查詢結果 1 不會與外部查詢結果結合。
可以在巢SearchSpec狀結構中定義進階排名策略,也可以在外部SearchSpec#RANKING_STRATEGY_JOIN_AGGREGATE_SCORE層使用SearchSpec。 此時,父檔案將根據透過進階排序策略評分所計算出的訊號總和(如總和)進行排序。
在評分方面,若 SearchSpec#RANKING_STRATEGY_JOIN_AGGREGATE_SCORE 設於 SearchSpec#getRankingStrategy,則外圍 SearchResults 的分數可受子查詢結果排名訊號影響。 例如,若 設定 JoinSpec#getAggregationScoringStrategy 為:
<UL><LI>JoinSpec#AGGREGATION_SCORING_MIN_RANKING_SIGNAL,外部 SearchResult 的排名訊號會設定為子查詢結果排名訊號的最小值。 在這種情況下,最低會是2和3,也就是2。
<李>JoinSpec#AGGREGATION_SCORING_MAX_RANKING_SIGNAL,外層 SearchResult 的排名信號會是3。
<李>JoinSpec#AGGREGATION_SCORING_AVG_RANKING_SIGNAL,外層 SearchResult 的排名信號是2.5。
<李>JoinSpec#AGGREGATION_SCORING_RESULT_COUNT,外 SearchResult 層的排名信號會是2,因為有兩個結果合併。
<李>JoinSpec#AGGREGATION_SCORING_SUM_RANKING_SIGNAL,外 SearchResult 層的排名信號是5,2和3的和。
<李>JoinSpec#AGGREGATION_SCORING_OUTER_RESULT_RANKING_SIGNAL,外層 SearchResult 的排名信號保持不變。
</ul>
在外部查詢的排名訊號中引用「this.childrenRankingSignals()」,將回傳透過巢狀 SearchSpec結構中評分策略對合併文件進行評分計算出的訊號,如 SearchResult#getRankingSignal。
Java 文件 android.app.appsearch.JoinSpec。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
欄位
| 名稱 | Description |
|---|---|
| AggregationScoringAvgRankingSignal |
已淘汰.
利用平均排名訊號對合併文件的彙整進行評分。 |
| AggregationScoringMaxRankingSignal |
已淘汰.
使用最大排名信號對合併文件的彙整進行評分。 |
| AggregationScoringMinRankingSignal |
已淘汰.
使用最小的排名信號對合併文件的彙整進行評分。 |
| AggregationScoringOuterResultRankingSignal |
已淘汰.
不要對合併文件的彙整進行評分。 |
| AggregationScoringResultCount |
已淘汰.
透過計算結果數量來評分合併文件的彙整。 |
| AggregationScoringSumRankingSignal |
已淘汰.
利用排名信號總和對合併文件的彙整進行評分。 |
屬性
| 名稱 | Description |
|---|---|
| AggregationScoringStrategy |
取得合併文件清單評分策略。 |
| ChildPropertyExpression |
用來從子文件取得值的屬性表達式,從巢狀搜尋中回傳。 |
| Class |
回傳此 |
| Creator |
JoinSpec 的創建者類別。 |
| Handle |
底層 Android 實例的帳號。 (繼承來源 Object) |
| JniIdentityHashCode |
取得由互通執行時指派給此 Java 對等端的身份雜湊碼。 (繼承來源 Object) |
| JniManagedPeerState |
此類別代表搜尋中連接操作的規範。 (繼承來源 JavaObject) |
| JniPeerMembers |
取得用於存取此 Java 綁定成員的 JNI 元資料。 |
| MaxJoinedResultCount |
回傳與父文件一起回傳最多 |
| NestedQuery |
回傳查詢以執行於合併文件。 |
| NestedSearchSpec |
回傳用於檢索合併文件的搜尋規格。 |
| PeerReference |
取得這個 Java 節點的 JNI 物件參考。 (繼承來源 Object) |
| ThresholdClass |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 (繼承來源 Object) |
| ThresholdType |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 (繼承來源 Object) |
方法
| 名稱 | Description |
|---|---|
| Clone() |
建立並回傳此物件的副本。 (繼承來源 Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
此類別代表搜尋中連接操作的規範。 (繼承來源 JavaObject) |
| DescribeContents() |
描述此 Parcelable 實例的分組表示中包含的特殊物件種類。 |
| Dispose() |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| Dispose(Boolean) |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| DisposeUnlessReferenced() |
此類別代表搜尋中連接操作的規範。 (繼承來源 JavaObject) |
| Equals(Object) |
此類別代表搜尋中連接操作的規範。 (繼承來源 JavaObject) |
| Equals(Object) |
表示是否有其他物體「等同」於此物。 (繼承來源 Object) |
| GetHashCode() |
回傳物件的雜湊碼值。 (繼承來源 Object) |
| JavaFinalize() |
已淘汰.
當垃圾回收判定該物件不再有相關參考時,由垃圾回收器呼叫。 (繼承來源 Object) |
| Notify() |
喚醒一個正在該物件監視器上等待的執行緒。 (繼承來源 Object) |
| NotifyAll() |
喚醒所有等待該物件監視器的執行緒。 (繼承來源 Object) |
| SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
此類別代表搜尋中連接操作的規範。 (繼承來源 JavaObject) |
| ToArray<T>() |
從這個 Java 陣列包裝器建立一個受管理陣列。 (繼承來源 Object) |
| ToString() |
回傳物件的字串表示。 (繼承來源 Object) |
| UnregisterFromRuntime() |
將此 Java 節點從互通執行時中取消註冊。 (繼承來源 Object) |
| Wait() |
導致目前執行緒等待被喚醒,通常是透過 <em>通知</><em 或 em>中斷</em> 來喚醒。 (繼承來源 Object) |
| Wait(Int64, Int32) |
會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。 (繼承來源 Object) |
| Wait(Int64) |
會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。 (繼承來源 Object) |
| WriteToParcel(Parcel, ParcelableWriteFlags) |
把這個物體壓扁成一個包裹。 |
明確介面實作
| 名稱 | Description |
|---|---|
| IJavaPeerable.Disposed() |
此類別代表搜尋中連接操作的規範。 (繼承來源 JavaObject) |
| IJavaPeerable.Finalized() |
此類別代表搜尋中連接操作的規範。 (繼承來源 JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
此類別代表搜尋中連接操作的規範。 (繼承來源 JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
此類別代表搜尋中連接操作的規範。 (繼承來源 JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
此類別代表搜尋中連接操作的規範。 (繼承來源 JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
此類別代表搜尋中連接操作的規範。 (繼承來源 JavaObject) |
| IJavaPeerable.UnregisterFromRuntime() |
將此實例從執行時的 Java 物件查詢中移除。 |
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
此類別代表搜尋中連接操作的規範。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |