Tous les produits
Search
Centre de documentation

OpenSearch:Fonctions de tri approximatif

Dernière mise à jour :Sep 19, 2026

Le classement des résultats de recherche suit généralement un processus en deux étapes. La première étape, le tri approximatif (rough sort), filtre rapidement les résultats initiaux pour identifier un sous-ensemble de documents de haute qualité. La seconde étape, le tri détaillé (fine sort), applique ensuite une logique de notation plus complexe à cet ensemble afin d'établir le classement final. Le tri approximatif a un impact significatif sur les performances de la recherche, tandis que le tri détaillé influence davantage la qualité du classement. Par conséquent, le tri approximatif doit rester simple et efficace, en n'utilisant que les facteurs de classement les plus critiques. Le tri approximatif et le tri détaillé se configurent tous deux à l'aide d'expressions de tri. Cette rubrique décrit les fonctions que vous pouvez utiliser dans un tri approximatif.

Fonctions

static_bm25 : Calculer la pertinence textuelle statique

  1. Syntaxe : static_bm25()

  2. Paramètres : Aucun.

  3. Valeur de retour : Une valeur flottante comprise dans l'intervalle [0,0 ; 1,0].

  4. Scénario : Utilisez cette fonction dans une expression de tri approximatif pour intégrer le score de pertinence textuelle statique. Exemple : static_bm25().

  5. Notes :

    • La fonction static_bm25() est activée par défaut dans la configuration de tri approximatif default.

Remarque

Cas où le score static_bm25() peut dépasser 1,0 :

Si une requête utilise des fonctionnalités d'analyse telles que les synonymes (par exemple, une requête pour index:'Apple' est étendue en query=index:'Apple' OR index:'apple'), le score static_bm25() s'accumule pour les documents correspondant à la fois à « Apple » et à « apple », ce qui entraîne un score de tri approximatif final supérieur à 1.

exact_match_boost : Obtenir le poids de boost maximal

  1. Syntaxe : exact_match_boost()

  2. Paramètres : Aucun.

  3. Valeur de retour : Un entier compris dans l'intervalle [0 ; 99].

  4. Scénario : Vous souhaitez classer les documents en fonction du poids de boost du terme correspondant. Pour une requête telle que query=default:'OpenSearch'^60 OR default:'opensearch'^50, un document contenant « OpenSearch » sera mieux classé qu'un document contenant « opensearch ». L'expression de tri approximatif serait : exact_match_boost().

  5. Notes :

    • Les champs référencés dans la requête doivent être configurés en tant que champs d'index.

    • Pour les termes de requête sans boost spécifié, la valeur de boost par défaut est 99.

    • Pour les applications dédiées, lorsqu'elle est utilisée dans un tri approximatif, la fonction exact_match_boost prend en charge sum et max comme paramètres optionnels.

timeliness : Calculer un score d'actualité

  1. Syntaxe : timeliness(pubtime)

  2. Paramètre : pubtime : Champ à évaluer. Doit être un entier représentant un horodatage Unix en secondes.

  3. Valeur de retour : Une valeur flottante comprise dans l'intervalle [0,0 ; 1,0]. Une valeur plus élevée indique un document plus récent. La fonction renvoie 0,0 si l'horodatage est dans le futur.

  4. Scénario : Pour prendre en compte l'ancienneté du document en fonction du champ create_timestamp, utilisez l'expression : timeliness(create_timestamp).

  5. Notes :

    • Le champ pubtime doit être configuré en tant que champ d'attribut.

timeliness_ms : Calculer un score d'actualité

  1. Syntaxe : timeliness_ms(pubtime)

  2. Paramètre : pubtime : Champ à évaluer. Doit être un entier représentant un horodatage Unix en millisecondes.

  3. Valeur de retour : Une valeur flottante comprise dans l'intervalle [0,0 ; 1,0]. Une valeur plus élevée indique un document plus récent. La fonction renvoie 0,0 si l'horodatage est dans le futur.

  4. Scénario : Pour prendre en compte l'ancienneté du document en fonction du champ create_timestamp, utilisez l'expression : timeliness_ms(create_timestamp).

  5. Notes :

    • Le champ pubtime doit être configuré en tant que champ d'attribut.

normalize : Normaliser une valeur numérique

  1. Aperçu : Dans les calculs de pertinence, la qualité des documents se mesure selon différentes dimensions. Les scores issus de ces dimensions ont souvent des plages de valeurs très différentes. Par exemple, le nombre de clics sur un document peut atteindre des millions, tandis que son score de pertinence textuelle se situe entre 0,0 et 1,0. Ces valeurs ne sont pas directement comparables. Pour les utiliser conjointement dans une formule, vous devez d'abord les normaliser sur une échelle commune. La fonction normalize offre un moyen simple d'y parvenir. Elle prend en charge trois méthodes et en sélectionne automatiquement une en fonction des paramètres fournis : la normalisation par arctangente (avec uniquement le paramètre value), la normalisation logarithmique (avec value et max), et la normalisation linéaire (avec value, max et min).

  2. Syntaxe : normalize(value, max, min)

  3. Paramètres :

  4. Valeur de retour : Une valeur double comprise dans l'intervalle [0,0 ; 1,0].

  5. Scénario 1 : Pour normaliser le champ price lorsque sa plage de valeurs est inconnue, utilisez : normalize(price).

    Scénario 2 : Pour normaliser le champ price lorsque seule sa valeur maximale (par exemple, 100) est connue, utilisez : normalize(price, 100).

    Scénario 3 : Pour normaliser le champ price lorsque ses valeurs maximale (100) et minimale (1) sont toutes deux connues, utilisez : normalize(price, 100, 1).

    Scénario 4 : Pour normaliser le résultat de la fonction distance dans l'intervalle [0,0 ; 1,0], utilisez : normalize(distance(longitude_in_doc, latitude_in_doc, longitude_in_query, latitude_in_query)).

  6. Notes :

    • Les champs utilisés comme paramètres doivent être configurés en tant que champs d'attribut.

    • Pour la normalisation par arctangente, si la value est inférieure à 0, la fonction renvoie 0,0.

    • Pour la normalisation logarithmique, la valeur max doit être supérieure à 1,0.

    • Pour la normalisation linéaire, la valeur max doit être supérieure à la valeur min.

category_score : Fonction de prédiction de catégorie

Description : Cette fonction renvoie un score indiquant dans quelle mesure la catégorie d'un document correspond à la catégorie prédite pour la requête.

  1. Syntaxe :

    category_score(cate_id)

  2. Paramètre :

    cate_id : Champ utilisé comme ID de catégorie lors de l'entraînement du modèle. Doit être un entier.

  3. Valeur de retour : Un entier compris dans l'intervalle [0 ; 2].

  4. Scénario : Utilisez category_score(cate_id) dans une expression de tri. Pour plus d'informations, consultez la rubrique Utiliser la fonctionnalité de prédiction de catégorie.

  5. Notes :