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.