Partager via


moreLikeThis (préversion) dans la recherche Azure AI

Important

Cette fonctionnalité est en préversion publique sous les conditions d’utilisation supplémentaires. L’API REST en préversion prend en charge cette fonctionnalité.

moreLikeThis=[key] est un paramètre de requête dans L’API Search Documents (Recherche de documents) qui recherche des documents similaires au document spécifié par la clé de document. Lorsqu’une requête de recherche est formulée avec moreLikeThis, une demande est générée en utilisant les termes de recherche extraits du document donné et qui décrivent le mieux ce document. La demande générée est ensuite utilisée pour effectuer la requête de recherche. Le paramètre moreLikeThis ne peut pas être utilisé avec le paramètre de recherche, search=[string].

Par défaut, le contenu de tous les champs de niveau supérieur pouvant faire l’objet d’une recherche est pris en compte. Si vous souhaitez spécifier des champs spécifiques à la place, vous pouvez utiliser le paramètre searchFields.

Le paramètre moreLikeThis n’est pas pris en charge pour les types complexes et la présence de types complexes impacte votre logique de requête. Si votre index est un type complexe, vous devez définir searchFields sur les champs de recherche de niveau supérieur sur lesquels moreLikeThis itère. Par exemple, si l’index a un field1 pouvant faire l’objet de recherche de type Edm.String et que field2 est un type complexe avec des sous-champs pouvant faire l’objet de recherche, la valeur de searchFields doit être définie sur field1 pour exclure field2.

Exemples

Tous les exemples suivants utilisent l’exemple d’hôtels de Démarrage rapide : Créer un index de recherche dans le portail Azure.

Requête simple

La requête suivante recherche les documents dont les champs de description sont les plus proches du champ du document source, tel que spécifié par le paramètre moreLikeThis.

GET /indexes/hotels-sample-index/docs?moreLikeThis=29&searchFields=Description&api-version=2024-05-01-preview

Dans cet exemple, la requête recherche des hôtels similaires à celui ayant l’HotelId 29. Au lieu d’utiliser HTTP GET, vous pouvez également appeler MoreLikeThis avec HTTP POST :

POST /indexes/hotels-sample-index/docs/search?api-version=2024-05-01-preview
    {
      "moreLikeThis": "29",
      "searchFields": "Description"
    }

Appliquer des filtres

MoreLikeThis peut être combiné avec d’autres paramètres de requête courants comme $filter. Par exemple, la requête peut être limitée à des hôtels dont la catégorie est « budget » et pour lesquels l’évaluation est supérieure à 3,5 :

GET /indexes/hotels-sample-index/docs?moreLikeThis=20&searchFields=Description&$filter=(Category eq 'Budget' and Rating gt 3.5)&api-version=2024-05-01-preview

Sélectionner des champs et limiter les résultats

Le sélecteur $top peut être utilisé pour limiter le nombre de résultats devant être retournés dans une requête MoreLikeThis. Les champs peuvent aussi être sélectionnés avec $select. Ici, les trois premiers hôtels sont sélectionnés avec leur ID, leur nom et leur évaluation :

GET /indexes/hotels-sample-index/docs?moreLikeThis=20&searchFields=Description&$filter=(Category eq 'Budget' and Rating gt 3.5)&$top=3&$select=HotelId,HotelName,Rating&api-version=2024-05-01-preview

Étapes suivantes

Vous pouvez utiliser n’importe quel client REST pour cet exercice.