語言

JoinSpec 類別

定義

此類別代表搜尋中連接操作的規範。

[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

回傳此 Object的執行時類別。

(繼承來源 Object)
Creator

JoinSpec 的創建者類別。

Handle

底層 Android 實例的帳號。

(繼承來源 Object)
JniIdentityHashCode

取得由互通執行時指派給此 Java 對等端的身份雜湊碼。

(繼承來源 Object)
JniManagedPeerState

此類別代表搜尋中連接操作的規範。

(繼承來源 JavaObject)
JniPeerMembers

取得用於存取此 Java 綁定成員的 JNI 元資料。

MaxJoinedResultCount

回傳與父文件一起回傳最多 SearchResult 可返回的物件數量,預設為 10 個搜尋結果。

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)

取得實例 self類型的 JNI 名稱。

JavaAs<TResult>(IJavaPeerable)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

JavaCast<TResult>(IJavaObject)

執行 Android 執行時檢查型別轉換。

JavaCast<TResult>(IJavaObject)

此類別代表搜尋中連接操作的規範。

TryJavaCast<TResult>(IJavaPeerable, TResult)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

適用於