Sprache

SearchSpec.Builder.SetRankingStrategy Methode

Definition

Überlädt

Name Beschreibung
SetRankingStrategy(Int32)

Legt die Bewertungsstrategie für AppSearch-Ergebnisse fest.

SetRankingStrategy(String)

Ermöglicht die bewertung der erweiterten Rangfolge basierend auf advancedRankingExpression.

SetRankingStrategy(Int32)

Legt die Bewertungsstrategie für AppSearch-Ergebnisse fest.

[Android.Runtime.Register("setRankingStrategy", "(I)Landroid/app/appsearch/SearchSpec$Builder;", "", ApiSince=31)]
public Android.App.AppSearch.SearchSpec.Builder SetRankingStrategy(int rankingStrategy);
[<Android.Runtime.Register("setRankingStrategy", "(I)Landroid/app/appsearch/SearchSpec$Builder;", "", ApiSince=31)>]
member this.SetRankingStrategy : int -> Android.App.AppSearch.SearchSpec.Builder

Parameter

rankingStrategy
Int32

Der Wert ist eine der folgenden: SearchSpec.RANKING_STRATEGY_NONE SearchSpec.RANKING_STRATEGY_DOCUMENT_SCORE SearchSpec.RANKING_STRATEGY_CREATION_TIMESTAMP SearchSpec.RANKING_STRATEGY_RELEVANCE_SCORE SearchSpec.RANKING_STRATEGY_USAGE_COUNT SearchSpec.RANKING_STRATEGY_USAGE_LAST_USED_TIMESTAMP SearchSpec.RANKING_STRATEGY_SYSTEM_USAGE_COUNT SearchSpec.RANKING_STRATEGY_SYSTEM_USAGE_LAST_USED_TIMESTAMP SearchSpec.RANKING_STRATEGY_JOIN_AGGREGATE_SCORE SearchSpec. RANKING_STRATEGY_ADVANCED_RANKING_EXPRESSION

Gibt zurück

Attribute

Hinweise

Legt die Bewertungsstrategie für AppSearch-Ergebnisse fest.

Android-Referenz für android.app.appsearch.SearchSpec.Builder.setRankingStrategy.

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.

Gilt für:

SetRankingStrategy(String)

Ermöglicht die bewertung der erweiterten Rangfolge basierend auf advancedRankingExpression.

[Android.Runtime.Register("setRankingStrategy", "(Ljava/lang/String;)Landroid/app/appsearch/SearchSpec$Builder;", "", ApiSince=34)]
public Android.App.AppSearch.SearchSpec.Builder SetRankingStrategy(string advancedRankingExpression);
[<Android.Runtime.Register("setRankingStrategy", "(Ljava/lang/String;)Landroid/app/appsearch/SearchSpec$Builder;", "", ApiSince=34)>]
member this.SetRankingStrategy : string -> Android.App.AppSearch.SearchSpec.Builder

Parameter

advancedRankingExpression
String

eine nicht leere Zeichenfolge, die den Rangfolgenausdruck darstellt. Dieser Wert darf nicht NULL sein.

Gibt zurück

Attribute

Hinweise

Ermöglicht die bewertung der erweiterten Rangfolge basierend auf advancedRankingExpression. Diese Methode legt "RankingStrategy" auf SearchSpec.RANKING_STRATEGY_ADVANCED_RANKING_EXPRESSION fest. Der Bewertungsausdruck ist ein mathematischer Ausdruck, der auf eine Gleitkommazahl vom Typ Double ausgewertet wird, die die Bewertung jedes Dokuments darstellt. Numerische Literale, arithmetische Operatoren, mathematische Funktionen, dokumentbasierte und eigenschaftswertbasierte Funktionen werden zum Erstellen von Ausdrücken unterstützt. Im Folgenden werden arithmetische Operatoren unterstützt: Addition(+) Subtraction(-) Multiplikation(*) Gleitkommateilung(/) Operatorrangfolgen sind mit den Java Language kompatibel, und Klammern werden unterstützt. Beispielsweise wird "2,2 + (3 - 4) / 2" als 1,7 ausgewertet. Die folgenden grundlegenden mathematischen Funktionen werden unterstützt: log(x) – das natürliche Protokoll von x log(x, y) - das Protokoll von y mit Base x pow(x, y) - x bis zur Leistung von y sqrt(x) abs(x) sin(x), cos(x), tan(x) Beispiel: "max(abs(-100), 10) + pow(2, 10)" werden auf 1124 Ausgewertet. Die folgenden variadischen mathematischen Funktionen werden unterstützt, mit n > 0. Sie akzeptieren auch Listenwertparameter. Wenn V beispielsweise ein Wert des Listentyps ist, können wir summe(V) aufrufen, um die Summe aller Werte in V abzurufen. Listenliterale werden nicht unterstützt, sodass ein Wert des Listentyps nur als Rückgabewert einiger bestimmter dokumentbasierter Funktionen erstellt werden kann. max(v1, v2,..., vn) oder max(V) min(v1, v2,..., vn) oder min(V) len(v1, v2,..., vn) oder len(V) sum(v1, v2,..., vn) oder sum(V) avg(v1, v2,..., vn) oder avg(V) Document-based functions must be called via "this", which represents the current document being scored. Im Folgenden werden dokumentbasierte Funktionen unterstützt: this.documentScore() Abrufen der von der App bereitgestellten Dokumentbewertung des aktuellen Dokuments. Dies ist die gleiche Bewertung, die für SearchSpec.RANKING_STRATEGY_DOCUMENT_SCORE zurückgegeben wird. this.creationTimestamp() Abrufen des Zeitstempels für die Erstellung des aktuellen Dokuments. Dies ist die gleiche Bewertung, die für SearchSpec.RANKING_STRATEGY_CREATION_TIMESTAMP zurückgegeben wird. this.relevanceScore() Abrufen der BM25F-Relevanzbewertung des aktuellen Dokuments in Bezug auf die Abfragezeichenfolge. Dies ist die gleiche Bewertung, die für SearchSpec.RANKING_STRATEGY_RELEVANCE_SCORE zurückgegeben wird. this.usageCount(type) and this.usageLastUsedTimestamp(type) Get the number of usages or the timestamp of last usage by type for the current document, where type must bevalu to an integer from 1 to 2. Typ 1 bezieht sich auf von AppSearchSession.reportUsage gemeldete Verwendungen, und Typ 2 bezieht sich auf die von GlobalSearchSession.reportSystemUsage gemeldeten Verwendungen. this.childrenRankingSignals() Gibt eine Liste von Untergeordneten Bewertungssignalen zurück, die berechnet werden, indem sie die verknüpften Dokumente mithilfe der in der geschachtelten SearchSpec angegebenen Bewertungsstrategie bewerten. Derzeit kann ein Dokument nur ein untergeordnetes Element eines anderen Dokuments im Kontext von Verknüpfungen sein. Wenn diese Funktion aufgerufen wird, ohne dass die Join-API aktiviert ist, wird ein Typfehler ausgelöst. this.propertyWeights() Gibt eine Liste der normalisierten Gewichtungen der übereinstimmenden Eigenschaften für das aktuelle Dokument zurück, das bewertet wird. Eigenschaftengewichtungen stammen aus den in SearchSpec angegebenen Eigenschaften. Nach der Normalisierung wird jede bereitgestellte Gewichtung durch die maximale Gewichtung dividiert, sodass jeder davon AppSearchSession.search ) basierend auf embedding_index und Metrik ist. Wenn die Metrik nicht angegeben wird, wird standardmäßig die in SearchSpec.Builder.setDefaultEmbeddingSearchMetricType(int) angegebene Metrik verwendet. Wenn keine "semanticSearch" für embedding_index und Metrik in der Abfrage aufgerufen wird, gibt diese Funktion eine leere Liste zurück. Wenn mehrere "semanticSearch" für dieselbe embedding_index und Metrik aufgerufen werden, gibt diese Funktion eine Liste ihrer zusammengeführten Ergebnisse zurück. Beispiel: 'this.matchedSemanticScores(getEmbeddingParameter(0), "COSINE")' gibt eine Liste übereinstimmender Bewertungen innerhalb des Bereichs von [0,5, 1], wenn 'semanticSearch(getEmbeddingParameter(0), 0.5, 1, "COSINE")" im Abfrageausdruck aufgerufen wird. Eigenschaftenwertbasierte Funktionen können über die Funktion getScorableProperty(schemaType, propertyPath) aufgerufen werden, um diese Funktion zu verwenden, muss ScorablePropertyRanking-Feature über SearchSpec.Builder.setScorablePropertyRankingEnabled(boolean) aktiviert werden. Param 'schemaType' muss ein gültiger AppSearch SchemaType sein, andernfalls wird ein Fehler zurückgegeben. Param 'propertyPath' muss gültig sein, andernfalls wird ein Fehler zurückgegeben. Es wird als besenkbar betrachtet, wenn: Es ist eine Eigenschaft, die für die Bewertung aktiviert ist, oder dass sie auf eine scorable Eigenschaft von geschachtelten Schematypen verweist. Diese Funktion gibt eine Liste mit doppelten Werten für die übereinstimmenen Dokumente zurück. Wenn sich das Schema des übereinstimmenen Dokuments von "schemaType" unterscheidet oder die Eigenschaft unter "propertyPath" kein Element enthält, wird eine leere Liste zurückgegeben. Einige Beispiele unten: Angenommen, es gibt zwei Schemas: "Gmail" und "Person". Das Schema "Gmail" weist eine Eigenschaft "Empfänger" mit dem Schematyp "Person" auf. Im erweiterten Bewertungsausdruck können Sie folgendes haben: "sum(getScorableProperty('Gmail', 'viewTimes')" "maxOrDefault(getScorableProperty('Person', 'income'), 0)" "sum(getScorableProperty('Gmail', 'recipient.income'))" "this.documentScore() + sum(getScorableProperty('Gmail', 'viewTimes'))" Die folgenden Funktionen werden für die erweiterte Listenbearbeitung bereitgestellt. minOrDefault(V, default_score) Gibt den Minimalwert in der Eingabeliste V oder der default_score zurück, wenn die Liste leer ist. Beispiel: "minOrDefault(this.matchedSemanticScores(getEmbeddingParameter(0)), 10)" gibt die mindestens übereinstimmende semantische Punktzahl oder 10 zurück, wenn für das aktuelle Dokument kein übereinstimmender Wert vorhanden ist. Für diese Funktion ist das Feature ERROR(/Features#SEARCH_SPEC_RANKING_FUNCTION_MAX_MIN_OR_DEFAULT) erforderlich. maxOrDefault(V, default_score) Gibt den Maximalwert in der Eingabeliste V oder der default_score zurück, wenn die Liste leer ist. Beispiel: "maxOrDefault(this.matchedSemanticScores(getEmbeddingParameter(0)), -10)" gibt die maximal übereinstimmende semantische Bewertung oder -10 zurück, wenn kein übereinstimmender Wert für das aktuelle Dokument vorhanden ist. Für diese Funktion ist das Feature ERROR(/Features#SEARCH_SPEC_RANKING_FUNCTION_MAX_MIN_OR_DEFAULT) erforderlich. filterByRange(V, low, high) Gibt eine Unterliste von V zurück, die nur die Elemente enthält, die im angegebenen Bereich liegen [niedrig, hoch]. Beispiel: "filterByRange(this.matchedSemanticScores(getEmbeddingParameter(0)), 0, 1)" gibt eine Liste übereinstimmender semantischer Bewertungen zurück, die zwischen 0 und einschließlich 1 liegen. Für diese Funktion ist das Feature ERROR(/Features#SEARCH_SPEC_RANKING_FUNCTION_FILTER_BY_RANGE) erforderlich. Einige Fehler können auftreten, wenn sie die erweiterte Rangfolge verwenden. Syntaxfehler: Der Ausdruck verletzt die Syntax der erweiterten Rangfolgesprache. Nachfolgend finden Sie einige Beispiele. "1 + " - fehlender Operand "2 * (1 + 2)")" - unausgewogene Klammer "2 ^ 3" - unbekannter Operatortypfehler: Der Ausdruck schlägt eine Überprüfung des statischen Typs fehl. Nachfolgend finden Sie einige Beispiele. "sin(2, 3)" - falsche Anzahl von Argumenten für die Sin-Funktion "this.childrenRankingSignals() + 1" - kann keine Liste mit einer Zahl "this.propertyWeights()" hinzufügen - der letzte Typ des Gesamtausdrucks kann keine Liste sein, die durch "max(this.propertyWeights())" "abs(this.propertyWeights())" behoben werden kann - die Abs-Funktion unterstützt keine Listentypargumente "print(2)" - unbekannter Funktionsauswertungsfehler: Fehler beim Auswerten des Werts des Ausdrucks. Nachfolgend finden Sie einige Beispiele. "1 / 0", "log(0)", "1 + sqrt(-1)" - ein nicht endlicher Wert in der Mitte der Auswertung "this.usageCount(1 + 0,5)" - erwarten Sie, dass das Argument eine ganze Zahl ist. Beachten Sie, dass dies kein Typfehler ist und "this.usageCount(1.5 + 1/2)" ohne Probleme "this.documentScore()" erfolgreich sein kann . Bei einem E/A-Fehler handelt es sich hierbei um einen Auswertungsfehler, und Typfehler schlagen die gesamte Suche fehl und bewirkt SearchResults.getNextPage, eine AppSearchException mit dem Ergebniscode von AppSearchResult.RESULT_INVALID_ARGUMENT auszulösen. Auswertungsfehler führen zu den fehlerhaften Dokumenten, die die Standardbewertung erhalten. Für SearchSpec.ORDER_DESCENDING ist die Standardbewertung 0, für SearchSpec.ORDER_ASCENDING die Standardbewertung unendlich ist.

Android-Referenz für android.app.appsearch.SearchSpec.Builder.setRankingStrategy.

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.

Gilt für: