Appliquer le filtrage et le tri
Il est courant dans une solution de recherche que les utilisateurs souhaitent affiner les résultats de la requête en filtrant et en triant en fonction des valeurs de champ. Recherche Azure AI prend en charge ces deux fonctionnalités via l’API de requête de recherche.
Filtrage des résultats
Vous pouvez appliquer des filtres à des requêtes de deux manières :
- En incluant des critères de filtre dans une expression de recherche simple.
- En fournissant une expression de filtre OData en tant que paramètre $filter avec une expression de recherche syntaxique complète.
Vous pouvez appliquer un filtre à n’importe quel champ filtrable dans l’index.
Supposons, par exemple, que vous souhaitiez trouver des documents contenant le texte Londres qui ont une valeur de champ Auteur de Réviseur.
Vous pouvez obtenir ce résultat en envoyant l’expression de recherche simple suivante :
search=London+author='Reviewer'
queryType=Simple
Vous pouvez également utiliser un filtre OData dans un paramètre $filter avec une expression de recherche Lucene complète comme suit :
search=London
$filter=author eq 'Reviewer'
queryType=Full
Conseil
Les expressions OData $Filter sont sensibles à la casse.
Filtrage avec des facettes
Les facettes sont un moyen utile de proposer à l’utilisateur des critères de filtrage en fonction des valeurs de champ d’un jeu de résultats. Elles fonctionnent mieux lorsqu’un champ comporte un petit nombre de valeurs discrètes qui peuvent être affichées sous forme de liens ou d’options dans l’interface utilisateur.
Pour utiliser des facettes, vous devez spécifier des champs facettables pour lesquels vous souhaitez récupérer les valeurs possibles dans une requête initiale. Par exemple, vous pouvez utiliser les paramètres suivants pour retourner toutes les valeurs possibles pour le champ Auteur :
search=*
facet=author
Les résultats de cette requête incluent une collection de valeurs de facettes discrètes que vous pouvez afficher dans l’interface utilisateur pour que l’utilisateur puisse les sélectionner. Ensuite, dans une requête suivante, vous pouvez utiliser la valeur de facette sélectionnée pour filtrer les résultats :
search=*
$filter=author eq 'selected-facet-value-here'
Tri des résultats
Par défaut, les résultats sont triés en fonction du score de pertinence affecté par le processus de requête, avec les correspondances les plus élevées répertoriées en premier. Toutefois, vous pouvez remplacer cet ordre de tri en incluant un paramètre OData orderby qui spécifie un ou plusieurs champs triables et un ordre de tri (asc ou desc).
Par exemple, pour trier les résultats afin que les documents les plus récemment modifiés soient répertoriés en premier, vous pouvez utiliser les valeurs de paramètre suivantes :
search=*
$orderby=last_modified desc
Remarque
Pour plus d’informations sur l’utilisation des filtres, consultez Filtres dans Recherche Azure AI. Pour plus d’informations sur l’utilisation des résultats, notamment le tri et la mise en évidence des correspondances, consultez Utilisation des résultats de recherche dans Recherche Azure AI.