Cette rubrique décrit les fonctions disponibles pour le tri préliminaire.
Aperçu
Le tri préliminaire est une étape de filtrage initiale. Il identifie rapidement les documents de haute qualité parmi les résultats de recherche bruts et sélectionne les N meilleurs documents. Ces documents subissent ensuite un tri fin, qui applique une notation plus détaillée pour déterminer le classement final. Le tri préliminaire a un impact significatif sur les performances, tandis que le tri fin détermine principalement la qualité de la recherche. Le tri préliminaire doit donc être simple et efficace, en n'utilisant que les facteurs clés du tri fin. Configurez le tri préliminaire et le tri fin à l'aide d'expressions de tri.
Fonctions
**static_bm25 : Pertinence textuelle statique**
Pour plus d'informations, consultez static_bm25.
Paramètres : Aucun.
Valeur de retour : Un nombre flottant compris entre 0 et 1.
Cas d'utilisation : Pour utiliser le score de pertinence textuelle statique dans un tri préliminaire, définissez l'expression sur
static_bm25().Remarques sur l'utilisation : La fonction
static_bm25()est utilisée par défaut dans l'expression de tri préliminairedefault.
Lorsque le score static_bm25() peut dépasser 1 :
Si vous configurez l'analyse des requêtes (par exemple pour les synonymes), le score peut dépasser 1. Par exemple, une requête par défaut est query=index:'apple'. Après configuration des synonymes, la requête devient query=index:'apple' OR index:'iphone'. Si un document contient à la fois « apple » et « iphone », les scores static_bm25() s'additionnent. Le score final du tri préliminaire peut ainsi dépasser 1.
**exact_match_boost : Poids de boost maximal**
Pour plus d'informations, consultez exact_match_boost.
Paramètres : Aucun.
Valeur de retour : Un entier compris entre 0 et 99.
Cas d'utilisation : Triez les résultats selon le poids de boost spécifié pour chaque terme correspondant dans une requête. Prenons la requête
query=default:'Open Search'^60 OR default:'opensearch'^50. Si le document A contient « Open Search » et le document B contient « opensearch », le document A est mieux classé que le document B. Pour obtenir ce résultat, définissez l'expression de tri préliminaire surexact_match_boost().-
Remarques sur l'utilisation :
Cette fonction nécessite que le champ cible soit indexé.
Pour les termes de requête sans valeur de boost spécifiée, la valeur de boost par défaut est 99.
Pour les applications dédiées, lorsque vous configurez la fonction
exact_match_boostdans un tri préliminaire, utilisez l'une des options de paramètre suivantes :'','sum'ou'max'. Sur la page d'édition des politiques, pour la fonctionnalité de notation **exact_match_boost(), sélectionnez une méthode d'agrégation dans la liste déroulante search field : max ou sum. Définissez ensuite le weight** correspondant.
**timeliness : Score d'actualité**
Syntaxe :
timeliness(pubtime). Pour plus d'informations, consultez timeliness.Paramètres :
pubtimeest le champ à évaluer. Le champ doit être de typeintet la valeur doit être un horodatage UNIX en secondes.Valeur de retour : Un nombre flottant compris entre 0 et 1. Une valeur plus élevée indique un document plus récent. Si l'horodatage est futur, la fonction renvoie 0.
Cas d'utilisation : Calculez le score d'actualité du champ
create_timestampdans un tri préliminaire. Définissez l'expression surtimeliness(create_timestamp).Remarques sur l'utilisation : Configurez le champ
pubtimeen tant que champ d'attribut.
**timeliness_ms : Score d'actualité**
Syntaxe :
timeliness_ms(pubtime). Pour plus d'informations, consultez timeliness_ms.Paramètres :
pubtimeest le champ à évaluer. Le champ doit être de typeintet la valeur doit être un horodatage UNIX en millisecondes.Valeur de retour : Un nombre flottant compris entre 0 et 1. Une valeur plus élevée indique un document plus récent. Si l'horodatage est futur, la fonction renvoie 0.
Cas d'utilisation : Calculez le score d'actualité du champ
create_timestampdans un tri préliminaire. Définissez l'expression surtimeliness_ms(create_timestamp).Remarques sur l'utilisation : Configurez le champ
pubtimeen tant que champ d'attribut.
**normalize : Fonction de normalisation**
Lors du calcul de la pertinence, la qualité d'un document est mesurée selon différentes dimensions. Les plages de valeurs de ces scores peuvent varier considérablement. Par exemple, les clics sur une page peuvent atteindre des millions, tandis qu'un score de pertinence textuelle statique se situe entre 0 et 1. Ces scores ne sont pas directement comparables. Pour les intégrer dans une seule formule, normalisez-les sur une plage commune. La fonction
normalizesimplifie ce processus. Elle prend en charge trois méthodes de normalisation : linéaire, logarithmique et arctangente. La fonction sélectionne automatiquement la méthode selon les paramètres fournis. Si vous spécifiez uniquement le paramètrevalue, elle utilise la méthode arctangente. Si vous spécifiezvalueetmax, elle utilise la méthode logarithmique. Si vous spécifiezvalue,maxetmin, elle utilise la méthode linéaire.Syntaxe :
normalize(value, max, min). Pour plus d'informations, consultez normalize.Paramètres :
valueest la valeur à normaliser (typedouble). Elle peut provenir d'un champ de document ou d'une autre expression.maxest la valeur d'entrée maximale facultative (typedouble).minest la valeur d'entrée minimale facultative (typedouble).Valeur de retour : Une valeur
doublecomprise entre 0 et 1.-
Cas d'utilisation :
Scénario 1 : Pour normaliser le champ
pricesans connaître sa plage de valeurs, utilisez l'expression suivante :normalize(price).Scénario 2 : Pour normaliser le champ
pricesi vous connaissez uniquement sa valeur maximale (100), utilisez l'expression suivante :normalize(price, 100).Scénario 3 : Pour normaliser le champ
pricesi vous connaissez sa valeur maximale (100) et sa valeur minimale (1), utilisez l'expression suivante :normalize(price, 100, 1).Scénario 4 : Pour normaliser le résultat d'une fonction
distancesur la plage [0, 1], utilisez l'expression suivante :normalize(distance(longitude_in_doc, latitude_in_doc, longitude_in_query, latitude_in_query)).
-
Remarques sur l'utilisation :
Les champs utilisés comme paramètres de fonction doivent être configurés en tant que champs d'attribut.
Avec la méthode arctangente, si la
valueest inférieure à 0, la valeur normalisée est 0.Avec la méthode logarithmique, la valeur
maxdoit être supérieure à 1.Avec la méthode linéaire, la valeur
maxdoit être supérieure à la valeurmin.