Idioma

SearchSpec.Builder.SetRankingStrategy Método

Definição

Sobrecargas

Nome Description
SetRankingStrategy(Int32)

Define a estratégia de classificação para os resultados do AppSearch.

SetRankingStrategy(String)

Permite que a classificação avançada seja pontuada com base em advancedRankingExpression.

SetRankingStrategy(Int32)

Define a estratégia de classificação para os resultados do 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

Parâmetros

rankingStrategy
Int32

O valor é um dos seguintes: 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

Retornos

Atributos

Comentários

Define a estratégia de classificação para os resultados do AppSearch.

Referência do Android para android.app.appsearch.SearchSpec.Builder.setRankingStrategy.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

Aplica-se a

SetRankingStrategy(String)

Permite que a classificação avançada seja pontuada com base em 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

Parâmetros

advancedRankingExpression
String

uma cadeia de caracteres não vazia que representa a expressão de classificação. Esse valor não pode ser nulo.

Retornos

Atributos

Comentários

Permite que a classificação avançada seja pontuada com base em advancedRankingExpression. Esse método definirá RankingStrategy como SearchSpec.RANKING_STRATEGY_ADVANCED_RANKING_EXPRESSION. A expressão de classificação é uma expressão matemática que será avaliada como um número de ponto flutuante de tipo duplo que representa a pontuação de cada documento. Literais numéricos, operadores aritméticos, funções matemáticas, funções baseadas em documento e baseadas em valor de propriedade têm suporte para criar expressões. Veja a seguir os operadores aritméticos com suporte: as precedências de operador de Multiplicação(*) de Subtração(-) de Adição(*) de Divisão de Ponto Flutuante(/) estão em conformidade com a linguagem Java e há suporte para parênteses. Por exemplo, "2,2 + (3 - 4) /2" é avaliado como 1,7. A seguir há suporte para funções matemáticas básicas: log(x) – o log natural de x log(x, y) - o log de y com base x pow(x, y) - x à potência de y sqrt(x) abs(x) sin(x), cos(x), tan(x) Exemplo: "max(abs(-100), 10) + pow(2, 10)" será avaliado como 1124 As seguintes funções matemáticas variadic são suportadas, com n > 0. Eles também aceitam parâmetros de valor de lista. Por exemplo, se V for um valor de tipo de lista, podemos chamar soma(V) para obter a soma de todos os valores em V. Não há suporte para literais de lista, portanto, um valor de tipo de lista só pode ser construído como um valor retornado de algumas funções específicas baseadas em documento. max(v1, v2,..., vn) ou max(V) min(v1, V2,..., vn) ou min(V) len(v1, v2,..., vn) ou len(V) sum(v1, v2,..., vn) ou sum(V) avg(v1, v2,..., vn) ou avg(V) As funções baseadas em documento devem ser chamadas por meio de "this", que representa o documento atual que está sendo marcado. Veja a seguir as funções baseadas em documento com suporte: this.documentScore() Obter a pontuação de documento fornecida pelo aplicativo do documento atual. Essa é a mesma pontuação retornada para SearchSpec.RANKING_STRATEGY_DOCUMENT_SCORE. this.creationTimestamp() Obter o carimbo de data/hora de criação do documento atual. Essa é a mesma pontuação retornada para SearchSpec.RANKING_STRATEGY_CREATION_TIMESTAMP. this.relevanceScore() Obter a pontuação de relevância BM25F do documento atual em relação à cadeia de caracteres de consulta. Essa é a mesma pontuação retornada para SearchSpec.RANKING_STRATEGY_RELEVANCE_SCORE. 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 be evaluated to an integer from 1 to 2. O tipo 1 refere-se aos usos relatados por AppSearchSession.reportUsage e o tipo 2 refere-se aos usos relatados por GlobalSearchSession.reportSystemUsage. this.childrenRankingSignals() Retorna uma lista de sinais de classificação filho calculados pontuando os documentos ingressados usando a estratégia de classificação especificada no SearchSpec aninhado. Atualmente, um documento só pode ser filho de outro documento no contexto de junções. Se essa função for chamada sem a API de Junção habilitada, um erro de tipo será gerado. this.propertyWeights() Retorna uma lista dos pesos normalizados das propriedades correspondentes para o documento atual que está sendo pontuado. Os pesos de propriedade vêm do que é especificado no SearchSpec. Após a normalização, cada peso fornecido será dividido pelo peso máximo, de modo que cada um deles seja AppSearchSession.search ) com base em embedding_index e métrica. Se a métrica for omitida, ela usará como padrão a métrica especificada em SearchSpec.Builder.setDefaultEmbeddingSearchMetricType(int). Se nenhum "semmanticSearch" for chamado para embedding_index e métrica na consulta, essa função retornará uma lista vazia. Se vários "semanticSearch" forem chamados para o mesmo embedding_index e métrica, essa função retornará uma lista de suas pontuações mescladas. Exemplo: 'this.matchedSemanticScores(getEmbeddingParameter(0), "COSINE")' retornará uma lista de pontuações correspondentes dentro do intervalo de [0,5, 1], se 'semanticSearch(getEmbeddingParameter(0), 0.5, 1, "COSINE")' for chamado na expressão de consulta. Funções baseadas em valor de propriedade podem ser chamadas por meio da função getScorableProperty(schemaType, propertyPath) Para usar essa função, o recurso ScorablePropertyRanking deve ser habilitado por meio de SearchSpec.Builder.setScorablePropertyRankingEnabled(boolean). Param 'schemaType' deve ser um Esquema AppSearch válido caso contrário, um erro é retornado. Param 'propertyPath' deve ser válido e scorável caso contrário, um erro é retornado. Ele é considerado scorable quando: é para uma propriedade que está definida para ser habilitada para pontuação ou que ela aponta para uma propriedade scorável de tipos de esquema aninhados. Essa função retorna uma lista de valores duplos para os documentos correspondentes. Se o esquema do documento correspondente for diferente de 'schemaType', ou a propriedade em 'propertyPath' não tiver nenhum elemento, uma lista vazia será retornada. Alguns exemplos abaixo: Suponha que haja dois esquemas: 'Gmail' e 'Person'. O esquema 'Gmail' tem uma propriedade 'recipient' com o tipo de esquema 'Person'. Na expressão de classificação avançada, você pode ter: "sum(getScorableProperty('Gmail', 'viewTimes'))" "maxOrDefault(getScorableProperty('Person', 'income'), 0)" "sum(getScorableProperty('Gmail', 'recipient.income'))" "this.documentScore() + sum(getScorableProperty('Gmail', 'viewTimes'))" As funções a seguir são fornecidas para manipulação de lista aprimorada. minOrDefault(V, default_score) Retorna o valor mínimo na lista de entrada V ou no default_score se a lista estiver vazia. Exemplo: "minOrDefault(this.matchedSemanticScores(getEmbeddingParameter(0)), 10)" retornará as pontuações semânticas mínimas correspondentes ou 10 se não houver nenhuma pontuação correspondente para o documento atual. Essa função requer o recurso ERROR(/Features#SEARCH_SPEC_RANKING_FUNCTION_MAX_MIN_OR_DEFAULT). maxOrDefault(V, default_score) Retorna o valor máximo na lista de entrada V ou no default_score se a lista estiver vazia. Exemplo: "maxOrDefault(this.matchedSemanticScores(getEmbeddingParameter(0)), -10)" retornará as pontuações semânticas máximas correspondentes ou -10 se não houver nenhuma pontuação correspondente para o documento atual. Essa função requer o recurso ERROR(/Features#SEARCH_SPEC_RANKING_FUNCTION_MAX_MIN_OR_DEFAULT). filterByRange(V, low, high) Retorna uma sublista de V que contém apenas os elementos que se enquadram no intervalo especificado [baixo, alto]. Exemplo: "filterByRange(this.matchedSemanticScores(getEmbeddingParameter(0)), 0, 1)" retornará uma lista de pontuações semânticas correspondentes que estão entre 0 e 1, inclusive. Essa função requer o recurso ERROR(/Features#SEARCH_SPEC_RANKING_FUNCTION_FILTER_BY_RANGE). Alguns erros podem ocorrer ao usar a classificação avançada. Erro de sintaxe: a expressão viola a sintaxe da linguagem de classificação avançada. Abaixo estão alguns exemplos. "1 + " – operando ausente "2 * (1 + 2))" – parênteses desequilibrados "2 ^ 3" – erro de tipo do operador desconhecido: a expressão falha em uma verificação de tipo estático. Abaixo estão alguns exemplos. "sin(2, 3)" - número incorreto de argumentos para a função sin "this.childrenRankingSignals() + 1" - não pode adicionar uma lista com um número "this.propertyWeights()" – o tipo final da expressão geral não pode ser uma lista, que pode ser corrigido por "max(this.propertyWeights()" "abs(this.propertyWeights())" – a função abs não dá suporte aos argumentos de tipo de lista "print(2)" – erro de avaliação de função desconhecida: ocorreu um erro ao avaliar o valor da expressão. Abaixo estão alguns exemplos. "1/0", "log(0)", "1 + sqrt(-1)" – obtendo um valor não finito no meio da avaliação "this.usageCount(1 + 0,5)" – espere que o argumento seja um inteiro. Observe que este não é um erro de tipo e "this.usageCount(1.5 + 1/2)" pode ter êxito sem problemas "this.documentScore()" – no caso de um erro de E/S, isso será um erro de avaliação Erros de sintaxe e erros de tipo falharão em toda a pesquisa e fará com que SearchResults.getNextPage lance um AppSearchException com o código de resultado de AppSearchResult.RESULT_INVALID_ARGUMENT. Os erros de avaliação resultarão no recebimento da pontuação padrão dos documentos ofensivos. Para SearchSpec.ORDER_DESCENDING, a pontuação padrão será 0, para SearchSpec.ORDER_ASCENDING a pontuação padrão será infinita.

Referência do Android para android.app.appsearch.SearchSpec.Builder.setRankingStrategy.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

Aplica-se a