Consultar no Azure AI Search

O Azure AI Search dá suporte a construções de consulta para uma ampla gama de cenários, desde a pesquisa de texto de forma livre até padrões de consulta altamente especificados, até a pesquisa de vetor. Todas as consultas são executadas em um índice de pesquisa que armazena conteúdo pesquisável.

Tipos de consultas

Formulário de consulta Conteúdo pesquisável Descrição
Pesquisa de texto completo Índices invertidos de termos tokenizados. Consultas de texto completo iteram em índices invertidos estruturados para verificações rápidas, em que uma correspondência pode ser encontrada em qualquer campo, dentro de qualquer número de documentos de pesquisa. O texto é analisado e tokenizado para pesquisa de texto completo.
Busca em vetores Índices vetoriais de inserções geradas. Consultas de vetor iteram em campos de vetor em um índice de pesquisa.
Pesquisa híbrida Tudo isso, em um único índice de pesquisa. Combina pesquisa de texto e pesquisa de vetor em uma única solicitação de consulta. A pesquisa de texto funciona em conteúdo de texto sem formatação em campos "pesquisáveis" e "filtrados". A pesquisa de vetor funciona no conteúdo em campos de vetor.
Others Texto sem formatação e conteúdo alfanumérico. Conteúdo bruto, extraído literalmente dos documentos de origem, com suporte a filtros e consultas de correspondência de padrões, como pesquisa geoespacial, pesquisa difusa e pesquisa em campo.

Este artigo traz o foco para a última categoria: consultas que funcionam em texto sem formatação e conteúdo alfanumérico, extraídas intactas da origem original, usadas para filtros e outros formulários de consulta especializados.

Preenchimento automático e consultas sugeridas

Os resultados de preenchimento automático ou sugerido são alternativas a search que disparam solicitações de sucessivas consulta com base em entradas de cadeias de caracteres parciais (depois de cada caractere) em uma experiência de pesquisa enquanto você digita. É possível usar o parâmetro autocomplete e suggestions em conjunto ou separadamente, conforme descrito neste passo a passo, mas não pode usá-los com search. Os termos concluídos e as consultas sugeridas são derivados do conteúdo do índice. O mecanismo nunca retorna uma cadeia de caracteres ou sugestão que não exista em seu índice. Para obter mais informações, consulte Preenchimento automático (API REST) e Sugestões (API REST).

Os filtros são amplamente usados em aplicativos baseados no Azure AI Search. Em páginas de aplicativo, os filtros são, geralmente, visualizados como facetas em estruturas de navegação de link para filtragem direcionada pelo usuário. Os filtros também são usados internamente para expor fatias de conteúdo indexado. Por exemplo, é possível inicializar uma página de pesquisa usando um filtro em uma categoria de produto ou um idioma se um índice contiver campos tanto em inglês como em francês.

Você também pode precisar de filtros para invocar um formulário de consulta especializado, conforme descrito na tabela a seguir. É possível usar um filtro com uma pesquisa não especificada (search=*) ou com uma cadeia de caracteres de consulta que inclua termos, frases, operadores e padrões.

Cenário de filtro Descrição
filtros de intervalo No Azure AI Search, as consultas de intervalo são criadas usando o parâmetro de filtro. Para obter mais informações e exemplos, consulte Exemplo de filtro de intervalo.
Navegação facetada Na faceted navigation, os usuários podem selecionar facetas. Quando apoiado por filtros, os resultados da pesquisa são limitados em cada clique. Cada faceta tem respaldo de um filtro que exclui documentos que não correspondem mais aos critérios fornecidos pela faceta.

Observação

O texto usado em uma expressão de filtro não é analisado durante o processamento da consulta. Presume-se que a entrada de texto seja um padrão de caracteres textuais que diferenciam maiúsculas de minúsculas e que seja bem-sucedida ou falhe na correspondência. As expressões de filtro são construídas com o uso da sintaxe do OData e passadas em um parâmetro filter em todos os campos filtráveis no índice. Para obter mais informações, confira Filtros no Azure AI Search.

A pesquisa geográfica corresponde às coordenadas de latitude e longitude de um local para "localizar perto de mim" ou experiência de pesquisa baseada em mapa. No Azure AI Search, você pode implementar a pesquisa geoespacipal seguindo estas etapas:

A pesquisa geoespacial usa quilômetros para distância. As coordenadas são especificadas neste formato: (longitude, latitude).

Aqui está um exemplo de um filtro para pesquisa geoespacial. Esse filtro localiza outros campos Location no índice de pesquisa que têm coordenadas dentro de um raio de 300 quilômetros do ponto de geografia (neste exemplo, Washington D.C.). Ele retorna informações de endereço no resultado e inclui uma cláusula facets opcional para auto-navegação com base no local.

POST https://{{searchServiceName}}.search.windows.net/indexes/hotels-vector-quickstart/docs/search?api-version=2023-07-01-Preview
{
    "count": true,
    "search": "*",
    "filter": "geo.distance(Location, geography'POINT(-77.03241 38.90166)') le 300",
    "facets": [ "Address/StateProvince"],
    "select": "HotelId, HotelName, Address/StreetAddress, Address/City, Address/StateProvince",
    "top": 7
}

Para obter mais informações e um exemplo, confira Exemplo de pesquisa geoespacial.

Pesquisa de documentos

Em contraste com os formulários de consulta descritos anteriormente, esta recupera um único documento de pesquisa por ID, sem qualquer pesquisa de índice ou verificação correspondente. Apenas um documento é solicitado e retornado. Quando um usuário seleciona um item nos resultados da pesquisa, recuperar o documento e preencher uma página de detalhes com campos é uma resposta típica e uma pesquisa de documento é a operação que dá suporte a ela.

Pesquisa avançada: difusa, curinga, proximidade, regex

Um formulário de consulta avançada depende do analisador Lucene completo e dos operadores que disparam um comportamento específico de consulta.

Tipo de consulta Uso Obter mais informações e exemplos
Pesquisa em campo searchParâmetro, queryType=full Crie uma expressão de consulta composta visando um único campo.
Exemplo de pesquisa em campo
pesquisa difusa searchParâmetro, queryType=full Corresponde a termos com construção ou ortografia semelhantes.
Exemplo de pesquisa difusa
pesquisa por proximidade searchParâmetro, queryType=full Descobre condições que estão próximos uns dos outros em um documento.
Exemplo de pesquisa por proximidade
aumento de termos searchParâmetro, queryType=full Classifica um documento mais alto se ele contiver o termo potencializado, em relação a outros que não contêm.
Exemplo de aumento de termo
pesquisa com expressão regular searchParâmetro, queryType=full Correspondências com base no conteúdo de uma expressão regular.
Exemplo de expressão regular
pesquisa de curinga ou prefixo search parâmetro com *~ ou ?, queryType=full Correspondências baseadas em um prefixo e til (~) ou caractere único (?).
Exemplo de pesquisa de curinga

Próximas etapas

Para uma análise mais detalhada da implementação da consulta, reveja os exemplos de cada sintaxe. Se você não estiver familiarizado com a pesquisa de texto completo, uma visão mais detalhada do que o mecanismo de consulta faz pode ser uma opção igualmente boa.