Sprache

JoinSpec Klasse

Definition

Diese Klasse stellt die Spezifikationen für den Verknüpfungsvorgang in der Suche dar.

[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
Vererbung
Attribute
Implementiert

Hinweise

Diese Klasse stellt die Spezifikationen für den Verknüpfungsvorgang in der Suche dar.

Verknüpfungen sind nur für den Abgleich mit der qualifizierten ID eines äußeren Dokuments und eines Eigenschaftswerts innerhalb eines Unterabfragedokuments möglich. In den Unterabfragedokumenten können diese Werte mit einem Eigenschaftspfad wie "email.recipient.id" oder "entityId" oder einem Eigenschaftsausdruck bezeichnet werden. Ein solcher Eigenschaftsausdruck ist "this.qualifiedId()", der sich auf das kombinierte Paket, die Datenbank, den Namespace und die ID des Dokuments bezieht.

Beachten Sie, dass die eigenschaft, auf #getChildPropertyExpression die verwiesen wird, um die Verknüpfung durchzuführen, eine Eigenschaft sein muss, auf AppSearchSchema.StringPropertyConfig#getJoinableValueType die festgelegt ist AppSearchSchema.StringPropertyConfig#JOINABLE_VALUE_TYPE_QUALIFIED_ID. Andernfalls werden keine Dokumente mit anderen SearchResultverknüpft.

Führen Sie die folgenden äußeren Abfrage- und Unterabfrageergebnisse aus:

{@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
            }
            }

In diesem Beispiel enthält das Ergebnis der Unterabfrage 1 eine Eigenschaft "entityId", deren Wert "pkg$db/ns#id1" lautet und auf das äußere Ergebnis verweist. Wenn Sie mit "entityId" aufrufen Builder , rufen wir den Wert der Eigenschaft "entityId" aus dem untergeordneten Dokument ab, also "pkg$db#ns/id1". Angenommen, die qualifizierte ID des äußeren Ergebnisses lautet "pkg$db#ns/id1". Dies bedeutet, dass das Ergebnis 1 der Unterabfrage mit diesem übergeordneten Dokument übereinstimmt. Dazu fügen Sie ein SearchResult untergeordnetes Dokument zum übergeordneten Übergeordneten SearchResult#getJoinedResultsElement der obersten Ebene hinzu.

Wenn #getChildPropertyExpression es sich um "Notizen" handelt, überprüfen wir die Werte der Notizeneigenschaft in den Unterabfrageergebnissen. In Unterabfrageergebnis 1 lautet dieser Wert "Dies ist ein Dokument", das nicht der qualifizierten ID des äußeren Abfrageergebnisses entspricht. Das Ergebnis der Unterabfrage 1 wird daher nicht mit dem äußeren Abfrageergebnis verknüpft.

Es ist möglich, eine erweiterte Rangfolgestrategie in der geschachtelten SearchSpec und auch im äußeren SearchSpec#RANKING_STRATEGY_JOIN_AGGREGATE_SCOREzu definierenSearchSpec. In diesem Fall werden die Eltern basierend auf einer Aggregation, z. B. der Summe, der Signale bewertet, die mit der Bewertung der verbundenen Dokumente mit der erweiterten Bewertungsstrategie berechnet werden.

Im Hinblick auf die Bewertung können die SearchSpec#RANKING_STRATEGY_JOIN_AGGREGATE_SCORESearchSpec#getRankingStrategyBewertungen der äußeren SearchResults durch die Bewertungssignale der Unterabfrageergebnisse beeinflusst werden. Wenn die JoinSpec#getAggregationScoringStrategy Einstellung z. B. auf Folgendes festgelegt ist:

<ul><li>JoinSpec#AGGREGATION_SCORING_MIN_RANKING_SIGNAL, das Bewertungssignal des äußeren SearchResult wird auf das Minimum der Bewertungssignale der Unterabfrageergebnisse festgelegt. In diesem Fall wird es mindestens 2 und 3 sein, was 2 ist. <li>JoinSpec#AGGREGATION_SCORING_MAX_RANKING_SIGNAL, das Bewertungssignal des äußeren SearchResult wird 3 sein. <li>JoinSpec#AGGREGATION_SCORING_AVG_RANKING_SIGNAL, das Bewertungssignal des äußeren SearchResult wird 2,5 sein. <li>JoinSpec#AGGREGATION_SCORING_RESULT_COUNT, das Bewertungssignal des äußeren SearchResult wird 2 sein, da es zwei verbundene Ergebnisse gibt. <li>JoinSpec#AGGREGATION_SCORING_SUM_RANKING_SIGNAL, das Bewertungssignal des äußeren SearchResult wird 5, die Summe von 2 und 3. <li>JoinSpec#AGGREGATION_SCORING_OUTER_RESULT_RANKING_SIGNAL, das Bewertungssignal des Äußeren SearchResult bleibt so, wie es ist. </ul>

Wenn Sie im Bewertungssignal der äußeren Abfrage auf "this.childrenRankingSignals()" verweisen, werden die Signale zurückgegeben, die durch die Bewertung der verknüpften Dokumente mithilfe der Bewertungsstrategie im geschachtelten SearchSpec, wie in .SearchResult#getRankingSignal

Java Dokumentation für android.app.appsearch.JoinSpec.

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Felder

Name Beschreibung
AggregationScoringAvgRankingSignal
Veraltet.

Bewerten Sie die Aggregation verknüpfter Dokumente mithilfe des durchschnittlichen Bewertungssignals.

AggregationScoringMaxRankingSignal
Veraltet.

Bewerten Sie die Aggregation verknüpfter Dokumente mithilfe des größten Bewertungssignals.

AggregationScoringMinRankingSignal
Veraltet.

Bewerten Sie die Aggregation verknüpfter Dokumente mithilfe des kleinsten Bewertungssignals.

AggregationScoringOuterResultRankingSignal
Veraltet.

Not scoren Sie die Aggregation verknüpfter Dokumente.

AggregationScoringResultCount
Veraltet.

Score the aggregation of join documents by counting the number of results.

AggregationScoringSumRankingSignal
Veraltet.

Bewerten Sie die Aggregation verknüpfter Dokumente mithilfe der Summe des Bewertungssignals.

Eigenschaften

Name Beschreibung
AggregationScoringStrategy

Ruft die Bewertungsstrategie für die verknüpfte Dokumentliste ab.

ChildPropertyExpression

Der Eigenschaftsausdruck, der verwendet wird, um Werte aus untergeordneten Dokumenten abzurufen, die aus der geschachtelten Suche zurückgegeben werden.

Class

Gibt die Laufzeitklasse dieses Werts Objectzurück.

(Geerbt von Object)
Creator

Diese Klasse stellt die Spezifikationen für den Verknüpfungsvorgang in der Suche dar.

Handle

Das Handle für die zugrunde liegende Android-Instanz.

(Geerbt von Object)
JniIdentityHashCode

Ruft den Identitätshashcode ab, der diesem Java Peer von der Interop-Laufzeit zugewiesen ist.

(Geerbt von Object)
JniManagedPeerState

Diese Klasse stellt die Spezifikationen für den Verknüpfungsvorgang in der Suche dar.

(Geerbt von JavaObject)
JniPeerMembers

Diese Klasse stellt die Spezifikationen für den Verknüpfungsvorgang in der Suche dar.

MaxJoinedResultCount

Gibt die maximale Anzahl von SearchResult Objekten zurück, die mit dem übergeordneten Dokument zurückgegeben werden sollen, mit einem Standardwert von 10 SearchResults.

NestedQuery

Gibt die Abfrage zurück, die für die verknüpften Dokumente ausgeführt werden soll.

NestedSearchSpec

Gibt die Suchspezifikation zurück, die zum Abrufen der verknüpften Dokumente verwendet wird.

PeerReference

Ruft den JNI-Objektverweis für diesen Java Peer ab.

(Geerbt von Object)
ThresholdClass

Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen.

(Geerbt von Object)
ThresholdType

Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen.

(Geerbt von Object)

Methoden

Name Beschreibung
Clone()

Erstellt und gibt eine Kopie dieses Objekts zurück.

(Geerbt von Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

Diese Klasse stellt die Spezifikationen für den Verknüpfungsvorgang in der Suche dar.

(Geerbt von JavaObject)
DescribeContents()

Beschreiben Sie die Arten spezieller Objekte, die in der Marshall-Darstellung dieser Paketable-Instanz enthalten sind.

Dispose()

Veröffentlicht die Ressourcen, die von diesem Java Peer gehalten werden.

(Geerbt von Object)
Dispose(Boolean)

Veröffentlicht die Ressourcen, die von diesem Java Peer gehalten werden.

(Geerbt von Object)
DisposeUnlessReferenced()

Diese Klasse stellt die Spezifikationen für den Verknüpfungsvorgang in der Suche dar.

(Geerbt von JavaObject)
Equals(Object)

Diese Klasse stellt die Spezifikationen für den Verknüpfungsvorgang in der Suche dar.

(Geerbt von JavaObject)
Equals(Object)

Gibt an, ob ein anderes Objekt "gleich" diesem Objekt ist.

(Geerbt von Object)
GetHashCode()

Gibt einen Hashcodewert für das Objekt zurück.

(Geerbt von Object)
JavaFinalize()
Veraltet.

Wird vom Garbage Collector für ein Objekt aufgerufen, wenn die Garbage Collection bestimmt, dass keine weiteren Verweise auf das Objekt vorhanden sind.

(Geerbt von Object)
Notify()

Aktiviert einen einzelnen Thread, der auf dem Monitor dieses Objekts wartet.

(Geerbt von Object)
NotifyAll()

Aktiviert alle Threads, die auf dem Monitor dieses Objekts warten.

(Geerbt von Object)
SetHandle(IntPtr, JniHandleOwnership)

Legt die Handle-Eigenschaft fest.

(Geerbt von Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Diese Klasse stellt die Spezifikationen für den Verknüpfungsvorgang in der Suche dar.

(Geerbt von JavaObject)
ToArray<T>()

Erstellt ein verwaltetes Array aus diesem Java Arraywrapper.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolgendarstellung des Objekts zurück.

(Geerbt von Object)
UnregisterFromRuntime()

Hebt die Registrierung dieses Java Peers aus der Interop-Laufzeit auf.

(Geerbt von Object)
Wait()

Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch em benachrichtigt/em< oder >em<unterbrochen>/em<.><>

(Geerbt von Object)
Wait(Int64, Int32)

Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

(Geerbt von Object)
Wait(Int64)

Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

(Geerbt von Object)
WriteToParcel(Parcel, ParcelableWriteFlags)

Flachen Sie dieses Objekt in ein Paket.

Explizite Schnittstellenimplementierungen

Name Beschreibung
IJavaPeerable.Disposed()

Diese Klasse stellt die Spezifikationen für den Verknüpfungsvorgang in der Suche dar.

(Geerbt von JavaObject)
IJavaPeerable.Finalized()

Diese Klasse stellt die Spezifikationen für den Verknüpfungsvorgang in der Suche dar.

(Geerbt von JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Diese Klasse stellt die Spezifikationen für den Verknüpfungsvorgang in der Suche dar.

(Geerbt von JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Diese Klasse stellt die Spezifikationen für den Verknüpfungsvorgang in der Suche dar.

(Geerbt von JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Diese Klasse stellt die Spezifikationen für den Verknüpfungsvorgang in der Suche dar.

(Geerbt von JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Diese Klasse stellt die Spezifikationen für den Verknüpfungsvorgang in der Suche dar.

(Geerbt von JavaObject)
IJavaPeerable.UnregisterFromRuntime()

Diese Klasse stellt die Spezifikationen für den Verknüpfungsvorgang in der Suche dar.

Erweiterungsmethoden

Name Beschreibung
GetJniTypeName(IJavaPeerable)

Ruft den JNI-Namen des Typs der Instanz selfab.

JavaAs<TResult>(IJavaPeerable)

Versuchen Sie, die Eingabe selfzu TResult erzwingen, und überprüfen Sie, ob die Koersion auf der Java Seite gültig ist.

JavaCast<TResult>(IJavaObject)

Führt eine android-laufzeitgecheckte Typkonvertierung aus.

JavaCast<TResult>(IJavaObject)

Diese Klasse stellt die Spezifikationen für den Verknüpfungsvorgang in der Suche dar.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Versuchen Sie, die Eingabe selfzu TResult erzwingen, und überprüfen Sie, ob die Koersion auf der Java Seite gültig ist.

Gilt für: