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.