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 legível por humanos. | 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 legível por humanos, 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).
Filtrar a pesquisa
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.
Pesquisa geoespacial
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:
- Defina um campo filtrável de um destes tipos: Edm.GeographyPoint, Collection(Edm.GeographyPoint, Edm.GeographyPolygon).
- Verifique se os documentos de entrada incluem as coordenadas apropriadas.
- Após a conclusão da indexação, crie uma consulta que usa um filtro e uma função geoespacial.
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=2024-07-01
{
"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 | search Parâmetro, queryType=full |
Crie uma expressão de consulta composta visando um único campo. Exemplo de pesquisa em campo |
pesquisa difusa | search Parâmetro, queryType=full |
Corresponde a termos com construção ou ortografia semelhantes. Exemplo de pesquisa difusa |
pesquisa por proximidade | search Parâ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 | search Parâ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 | search Parâ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.