Compartilhar via


moreLikeThis (versão prévia) no Azure AI Search

Importante

Esse recurso está em versão prévia pública nos Termos de Uso Complementares. A versão prévia da API REST dá suporte a esse recurso.

moreLikeThis=[key] é um parâmetro de consulta na API de documentos de pesquisa que localiza documentos semelhantes ao documento especificado pela chave do documento. Quando uma solicitação de pesquisa é feita com moreLikeThis, uma consulta é gerada com termos de pesquisa extraídos do documento fornecido que descrevem melhor o documento. A consulta gerada é usada para fazer a solicitação de pesquisa. O parâmetro moreLikeThis não pode ser usado com o parâmetro de pesquisa, search=[string].

Por padrão, o conteúdo de todos os campos pesquisáveis de nível superior é considerado. Se você quiser especificar campos específicos em vez disso, poderá usar o parâmetro searchFields.

Não há suporte para o parâmetro moreLikeThis para tipos complexos e a presença de tipos complexos afetará sua lógica de consulta. Se o índice for um tipo complexo, você deverá definir searchFields para os campos pesquisáveis de nível superior sobre os quais moreLikeThis itera. Por exemplo, se o índice tem um field1 pesquisável do tipo Edm.String e field2 que é um tipo complexo com subcampos pesquisáveis, o valor de searchFields precisa ser definido como field1 para excluir field2.

Exemplos

Todos os exemplos a seguir usam o exemplo de hotéis de início rápido: criar um índice de pesquisa no portal do Azure.

Consulta simples

A consulta a seguir localiza os documentos cujos campos de descrição são mais parecidos com o campo do documento de origem, conforme especificado pelo parâmetro moreLikeThis:

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

Neste exemplo, a solicitação procura Hotéis semelhantes a um com 29 HotelId. Em vez de usar HTTP GET, você também pode invocar MoreLikeThis usando HTTP POST:

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

Aplicar filtros

MoreLikeThis pode ser combinado com outros parâmetros de consulta comuns, como $filter. Por exemplo, a consulta pode ser restrita a apenas Hotéis cuja categoria é 'econômico' e onde a classificação é maior que 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

Selecionar campos e limitar os resultados

O seletor $top pode ser usado para limitar quantos resultados devem ser retornados em uma consulta MoreLikeThis. Além disso, os campos podem ser selecionados com $select. Aqui, os três principais hotéis são selecionados junto com sua ID, nome e classificação:

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

Próximas etapas

Você pode usar qualquer cliente REST para este exercício.