Compartir a través de


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.