Lingua

SearchSpec.Builder.SetRankingStrategy Metodo

Definizione

Overload

Nome Descrizione
SetRankingStrategy(Int32)

Imposta la strategia di classificazione per i risultati di AppSearch.

SetRankingStrategy(String)

Consente la classificazione avanzata per assegnare punteggi in base a advancedRankingExpression.

SetRankingStrategy(Int32)

Imposta la strategia di classificazione per i risultati di AppSearch.

[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

Parametri

rankingStrategy
Int32

Il valore è uno dei seguenti: 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

Valori restituiti

Attributi

Commenti

Imposta la strategia di classificazione per i risultati di AppSearch.

Informazioni di riferimento su Android per android.app.appsearch.SearchSpec.Builder.setRankingStrategy.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Si applica a

SetRankingStrategy(String)

Consente la classificazione avanzata per assegnare punteggi in base a 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

Parametri

advancedRankingExpression
String

stringa non vuota che rappresenta l'espressione di classificazione. Questo valore non può essere Null.

Valori restituiti

Attributi

Commenti

Consente la classificazione avanzata per assegnare punteggi in base a advancedRankingExpression. Questo metodo imposta RankingStrategy su SearchSpec.RANKING_STRATEGY_ADVANCED_RANKING_EXPRESSION. L'espressione di classificazione è un'espressione matematica che verrà valutata in un numero a virgola mobile di tipo double che rappresenta il punteggio di ogni documento. Valori letterali numerici, operatori aritmetici, funzioni matematiche, funzioni basate su documenti e funzioni basate su valori di proprietà sono supportate per la compilazione di espressioni. Di seguito sono riportati gli operatori aritmetici supportati: le precedenze dell'operatore Addizione(+) Moltiplicazione(-) (*) Divisione a virgola mobile(/) sono conformi alle Java Language e sono supportate le parentesi. Ad esempio, "2.2 + (3 - 4) / 2" restituisce 1,7. Di seguito sono supportate le funzioni matematiche di base: log(x) - log naturale di x log(x, y) - log di y con base x pow(x, y) - x alla potenza di y sqrt(x) abs(x) sin(x), cos(x), tan(x) Example: "max(abs(-100), 10) + pow(2, 10)" verrà valutato su 1124 Le seguenti funzioni matematiche variadic sono supportate, con n > 0. Accettano anche parametri di valore elenco. Ad esempio, se V è un valore di tipo elenco, è possibile chiamare sum(V) per ottenere la somma di tutti i valori in V. I valori letterali elenco non sono supportati, pertanto un valore di tipo elenco può essere costruito solo come valore restituito di alcune funzioni specifiche basate su documenti. max(v1, v2,..., vn) o max(V) min(v1, v2,..., vn) o min(V) len(v1, v2,..., vn) o len(V) sum(v1, v2,..., vn) o sum(V) avg(v1, v2,..., vn) o le funzioni basate su documenti avg(V) devono essere chiamate tramite "this", che rappresenta il documento corrente con punteggio. Di seguito sono riportate le funzioni basate su documenti supportate: this.documentScore() Ottiene il punteggio del documento corrente fornito dall'app. Si tratta dello stesso punteggio restituito per SearchSpec.RANKING_STRATEGY_DOCUMENT_SCORE. this.creationTimestamp() Ottiene il timestamp di creazione del documento corrente. Si tratta dello stesso punteggio restituito per SearchSpec.RANKING_STRATEGY_CREATION_TIMESTAMP. this.relevanceScore() Ottiene il punteggio di pertinenza BM25F del documento corrente in relazione alla stringa di query. Si tratta dello stesso punteggio restituito per SearchSpec.RANKING_STRATEGY_RELEVANCE_SCORE. this.usageCount(type) e this.usageLastUsedTimestamp(type) Ottiene il numero di utilizzi o il timestamp dell'ultimo utilizzo per tipo per il documento corrente, dove il tipo deve essere valutato in un numero intero compreso tra 1 e 2. Il tipo 1 fa riferimento agli utilizzi segnalati da AppSearchSession.reportUsage e il tipo 2 fa riferimento agli utilizzi segnalati da GlobalSearchSession.reportSystemUsage. this.childrenRankingSignals() Restituisce un elenco di segnali di classificazione figlio calcolati assegnando un punteggio ai documenti uniti usando la strategia di classificazione specificata in SearchSpec annidato. Attualmente, un documento può essere figlio di un altro documento nel contesto dei join. Se questa funzione viene chiamata senza l'API join abilitata, verrà generato un errore di tipo. this.propertyWeights() Restituisce un elenco dei pesi normalizzati delle proprietà corrispondenti per il documento corrente con punteggio. I pesi delle proprietà provengono da quanto specificato in SearchSpec. Dopo la normalizzazione, ogni peso specificato verrà diviso per il peso massimo, in modo che ognuno di essi sarà AppSearchSession.search ) in base a embedding_index e metrica. Se la metrica viene omessa, per impostazione predefinita viene impostata la metrica specificata in SearchSpec.Builder.setDefaultEmbeddingSearchMetricType(int). Se non viene chiamato "semanticSearch" per embedding_index e metrica nella query, questa funzione restituirà un elenco vuoto. Se vengono chiamati più "semanticSearch" per la stessa embedding_index e metrica, questa funzione restituirà un elenco dei punteggi uniti. Esempio: 'this.matchedSemanticScores(getEmbeddingParameter(0), "COSINE")' restituirà un elenco di punteggi corrispondenti nell'intervallo di [0,5, 1], se 'semanticSearch(getEmbeddingParameter(0), 0,5, 1, "COSINE")' viene chiamato nell'espressione di query. Le funzioni basate su proprietà-valore possono essere chiamate tramite la funzione di getScorableProperty(schemaType, propertyPath) Per usare questa funzione, è necessario abilitare la funzionalità ScorablePropertyRanking tramite SearchSpec.Builder.setScorablePropertyRankingEnabled(boolean). Il parametro 'schemaType' deve essere un SchemaType AppSearch valido; in caso contrario, viene restituito un errore. Il parametro 'propertyPath' deve essere valido e associabile a un punteggio; in caso contrario, viene restituito un errore. È considerato associabile ai punteggi quando: si tratta di una proprietà impostata per l'abilitazione dell'assegnazione dei punteggi o che punta a una proprietà associabile ai tipi di schema annidati. Questa funzione restituisce un elenco di valori doppi per i documenti corrispondenti. Se lo schema del documento corrispondente è diverso da "schemaType" o la proprietà in 'propertyPath' non contiene alcun elemento, viene restituito un elenco vuoto. Alcuni esempi seguenti: Si supponga che siano presenti due schemi: "Gmail" e "Person". Lo schema 'Gmail' ha una proprietà 'recipient' con tipo di schema 'Person'. Nell'espressione di classificazione avanzata è possibile avere: "sum(getScorableProperty('Gmail', 'viewTimes'))" "maxOrDefault(getScorableProperty('Person', 'income'), 0)" "sum(getScorableProperty('Gmail', 'recipient.income'))" "this.documentScore() + sum(getScorableProperty('Gmail', 'viewTimes'))" Le funzioni seguenti vengono fornite per la modifica avanzata degli elenchi. minOrDefault(V, default_score) Restituisce il valore minimo nell'elenco di input V o il default_score se l'elenco è vuoto. Esempio: "minOrDefault(this.matchedSemanticScores(getEmbeddingParameter(0)), 10)" restituirà i punteggi semantici minimi corrispondenti o 10 se non è presente alcun punteggio corrispondente per il documento corrente. Questa funzione richiede la funzionalità ERROR(/Features#SEARCH_SPEC_RANKING_FUNCTION_MAX_MIN_OR_DEFAULT). maxOrDefault(V, default_score) Restituisce il valore massimo nell'elenco di input V o il default_score se l'elenco è vuoto. Esempio: "maxOrDefault(this.matchedSemanticScores(getEmbeddingParameter(0)), -10)" restituirà il numero massimo di punteggi semantici corrispondenti o -10 se non è presente alcun punteggio corrispondente per il documento corrente. Questa funzione richiede la funzionalità ERROR(/Features#SEARCH_SPEC_RANKING_FUNCTION_MAX_MIN_OR_DEFAULT). filterByRange(V, low, high) Restituisce un sottolista di V che contiene solo gli elementi che rientrano nell'intervallo specificato [basso, alto]. Esempio: "filterByRange(this.matchedSemanticScores(getEmbeddingParameter(0)), 0, 1)" restituirà un elenco di punteggi semantici corrispondenti compresi tra 0 e 1 inclusi. Questa funzione richiede la funzionalità ERROR(/Features#SEARCH_SPEC_RANKING_FUNCTION_FILTER_BY_RANGE). Alcuni errori possono verificarsi quando si usa la classificazione avanzata. Errore di sintassi: l'espressione viola la sintassi del linguaggio di classificazione avanzata. Di seguito sono riportati alcuni esempi. "1 + " - operando mancante "2 * (1 + 2)" - parentesi sbilanciate "2 ^ 3" - Errore di tipo operatore sconosciuto: l'espressione non riesce a un controllo del tipo statico. Di seguito sono riportati alcuni esempi. "sin(2, 3)" - numero errato di argomenti per la funzione sin "this.childrenRankingSignals() + 1" - non può aggiungere un elenco con un numero "this.propertyWeights()" - il tipo finale dell'espressione complessiva non può essere un elenco, che può essere corretto da "max(this.propertyWeights())" "abs(this.propertyWeights())" - la funzione abs non supporta gli argomenti di tipo elenco "print(2)" - Errore di valutazione della funzione sconosciuta: si è verificato un errore durante la valutazione del valore dell'espressione. Di seguito sono riportati alcuni esempi. "1/ 0", "log(0)", "1 + sqrt(-1)" - ottenere un valore non finito al centro della valutazione "this.usageCount(1 + 0,5)" - prevedere che l'argomento sia un numero intero. Si noti che questo non è un errore di tipo e "this.usageCount(1.5 + 1/2)" può avere esito positivo senza problemi "this.documentScore()" - in caso di errore di I/O, si tratta di errori di valutazione della sintassi e gli errori di tipo non riusciranno nell'intera ricerca e causerà l'errore SearchResults.getNextPage per generare un'eccezione AppSearchException con il codice del risultato di AppSearchResult.RESULT_INVALID_ARGUMENT. Gli errori di valutazione genereranno i documenti che ricevono il punteggio predefinito. Per SearchSpec.ORDER_DESCENDING, il punteggio predefinito sarà 0, per SearchSpec.ORDER_ASCENDING il punteggio predefinito sarà infinito.

Informazioni di riferimento su Android per android.app.appsearch.SearchSpec.Builder.setRankingStrategy.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Si applica a