moreLikeThis (versión preliminar) en Azure AI Search
Importante
Esta característica se encuentra en versión preliminar pública en los Términos de uso complementarios. La API REST de versión preliminar admite esta característica.
moreLikeThis=[key]
es un parámetro de consulta de Search Documents API que busca documentos similares al documento especificado por la clave del documento. Cuando se realiza una solicitud de búsqueda con moreLikeThis
, se genera una consulta con los términos de búsqueda extraídos del documento especificado que describen mejor ese documento. La consulta generada se usa luego para realizar la solicitud de búsqueda. El parámetro moreLikeThis
no se puede usar con el parámetro de búsqueda search=[string]
.
De forma predeterminada, se tiene en cuenta el contenido de todos los campos que permiten búsquedas de nivel superior. Si quiere especificar campos concretos en su lugar, puede usar el parámetro searchFields
.
El parámetro moreLikeThis
no se admite para tipos complejos y la presencia de estos afectará a la lógica de consulta. Si el índice es un tipo complejo, debe establecer en searchFields
los campos que se pueden buscar de nivel superior en los que moreLikeThis
se recorre en iteración. Por ejemplo, si el índice tiene un field1
que permite búsquedas del tipo Edm.String
y field2
que es un tipo complejo con subcampos que se pueden buscar, el valor de searchFields
debe establecerse enfield1
para que se excluya field2
.
Ejemplos
En todos los ejemplos siguientes se usa el ejemplo de hoteles de Inicio rápido: Creación de un índice de búsqueda en Azure Portal.
Consulta simple
La siguiente consulta busca los documentos cuyos campos de descripción son lo más parecido al campo del documento de origen según se especifica con el parámetro moreLikeThis
:
GET /indexes/hotels-sample-index/docs?moreLikeThis=29&searchFields=Description&api-version=2024-05-01-preview
En este ejemplo, la solicitud busca hoteles parecidos al que tiene el identificador HotelId
29.
En lugar de usar HTTP GET, también puede invocar MoreLikeThis
con HTTP POST:
POST /indexes/hotels-sample-index/docs/search?api-version=2024-05-01-preview
{
"moreLikeThis": "29",
"searchFields": "Description"
}
Aplica filtros
MoreLikeThis
se puede combinar con otros parámetros de consulta habituales como $filter
. Por ejemplo, la consulta se puede restringir solo a aquellos hoteles cuya categoría es "Budget" y la puntuación superior a 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
Selección de cambios y limitación de resultados
El selector $top
se puede utilizar para limitar el número de resultados que se devuelven en una consulta de MoreLikeThis
. Además, los campos pueden seleccionarse con $select
. Aquí se seleccionan los tres hoteles principales junto con su identificador, nombre y puntuación:
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
Pasos siguientes
Puede usar cualquier cliente REST para este ejercicio.