Tous les produits
Search
Centre de documentation

OpenSearch:Clause de tri

Dernière mise à jour :Aug 22, 2026

Une clause de tri définit l'ordre des résultats de requête selon un ou plusieurs champs. En l'absence de clause de tri, les résultats sont classés par défaut par ordre décroissant du score de pertinence (RANK).

Syntaxe

Une clause de tri respecte le format suivant :

+field1;-field2
  • Le symbole + trie le champ par ordre croissant.

  • Le symbole - trie le champ par ordre décroissant.

  • Séparez plusieurs règles de tri par des points-virgules (;).

  • Combinez des champs à l'aide d'opérateurs arithmétiques (+, -, *, /) pour trier selon une valeur calculée. Les champs reliés par un opérateur doivent partager le même type de données.

  • Utilisez le champ RANK pour ordonner les résultats en fonction du score de pertinence, lequel est déterminé par une expression de tri.

Récapitulatif rapide

Exemple Résultat
+price Tri croissant selon price
-price Tri décroissant selon price
-(hits+comments) Tri décroissant selon la somme de hits et de comments
+type;-RANK Tri croissant selon type ; les égalités sont départagées par pertinence décroissante
+distance(lon,lat,"120.34256","30.56982") Tri croissant selon la distance par rapport aux coordonnées indiquées

Tri multidimensionnel

Une clause de tri peut inclure plusieurs règles séparées par des points-virgules. Le tri s'applique d'abord selon la première règle ; en cas d'égalité des valeurs, la règle suivante prend le relais, et ainsi de suite.

sort=-field1;-field2;-field3

Les performances du tri multidimensionnel dépendent des caractéristiques des champs et ne sont pas garanties. Pour optimiser les performances, utilisez une expression de tri fin afin de combiner plusieurs signaux issus des champs en un seul score numérique :

normalize(field1)*100+normalize(field2)*10+normalize(field3)+first_phase_score*10000

Ici, first_phase_score correspond au score calculé par l'expression de tri approximatif. Cette approche vous assure des performances de tri prévisibles et vous permet d'ajuster explicitement les pondérations des champs. Pour plus de détails, consultez la rubrique Fonctions de tri fin.

Limites

  1. La clause de tri est facultative. À défaut, les résultats sont triés par RANK en ordre décroissant. Si la clause de tri n'inclut pas le champ RANK, les expressions de tri ne s'appliquent pas.

  2. Les champs utilisés dans une clause de tri doivent être des champs d'attribut définis dans le schéma de l'application.

  3. Les fonctions fonctionnelles renvoyant des valeurs INT ou FLOAT peuvent servir de champs de tri.

  4. Pour les champs LITERAL : les lettres sont triées par ordre alphabétique, les nombres chiffre par chiffre à chaque position, et les caractères chinois selon leur valeur ASCII.

  5. Les champs ARRAY ne sont pris en charge que dans de rares scénarios.

Fonctions fonctionnelles prises en charge

distance

Renvoie la distance sphérique entre deux points. Cette fonction est couramment employée pour trier les résultats par proximité dans les scénarios de services basés sur la localisation (LBS).

Exemple : Trier les résultats de recherche de restaurants par distance croissante.

query=default:'Restaurant name'&&sort=+distance(lon,lat,"120.34256","30.56982")

Pour la référence complète de la fonction, consultez la rubrique distance.

tag_match

Compare les clauses de requête aux documents via des tags et attribue un score aux documents en fonction des poids des tags correspondants.

Exemple :

sort=-tag_match("user_options", options, "mul", "sum", "false", "true", 100)

Pour la référence complète de la fonction, consultez la rubrique tag_match.

Exemples

Tri par champ, puis par pertinence

Recherchez « Zhejiang University » et classez les résultats par type croissant, en départageant les égalités par pertinence textuelle décroissante.

query=default:'Zhejiang University'&&sort=+type;-RANK

L'expression de tri fin peut être text_relevance(field). Pour configurer la politique de tri, reportez-vous à la rubrique Configurer les politiques de tri.

Tri par valeur de champ calculée

Recherchez « Zhejiang University » et classez les résultats selon le total combiné des hits et des comments par ordre décroissant.

query=default:'Zhejiang University'&&sort=-(hits+comments)

Étapes suivantes