Configurar classificação semântica e retornar legendas nos resultados da pesquisa

Neste artigo, saiba como invocar uma classificação semântica sobre um conjunto de resultados, promovendo os resultados semanticamente mais relevantes para o topo da pilha. Você também pode obter legendas semânticas, com destaques sobre os termos e frases mais relevantes, e respostas semânticas.

Pré-requisitos

  • Um serviço de pesquisa na camada Basic, Standard (S1, S2, S3) ou Storage Optimized (L1, L2), sujeito à disponibilidade da região.

  • Classificador semântico ativado no seu serviço de pesquisa.

  • Um índice de pesquisa existente com conteúdo rich text. A classificação semântica aplica-se a campos de texto (não vetoriais) e funciona melhor em conteúdo informativo ou descritivo.

Escolha um cliente

Escolha um cliente de pesquisa que suporte a classificação semântica. Seguem-se algumas opções:

Adicionar uma configuração semântica

Uma configuração semântica é uma seção em seu índice que estabelece entradas de campo para classificação semântica. Você pode adicionar ou atualizar uma configuração semântica a qualquer momento, sem necessidade de reconstrução. Se você criar várias configurações, poderá especificar um padrão. No momento da consulta, especifique uma configuração semântica em uma solicitação de consulta ou deixe-a em branco para usar o padrão.

Uma configuração semântica tem um nome e as seguintes propriedades:

Property Características
Campo Título Uma corda curta, idealmente com menos de 25 palavras. Este campo pode ser o título de um documento, o nome de um produto ou um identificador único. Se não tiver um campo adequado, deixe-o em branco.
Campos de conteúdo Blocos mais longos de texto em linguagem natural, sujeitos a limites máximos de entrada de token nos modelos de aprendizado de máquina. Exemplos comuns incluem o corpo de um documento, a descrição de um produto ou outro texto de forma livre.
Campos de palavras-chave Uma lista de palavras-chave, como as tags em um documento, ou um termo descritivo, como a categoria de um item.

Você só pode especificar um campo de título, mas pode ter quantos campos de conteúdo e palavra-chave quiser. Para campos de conteúdo e palavra-chave, liste os campos em ordem de prioridade porque os campos de prioridade mais baixa podem ficar truncados.

Em todas as propriedades de configuração semântica, os campos atribuídos devem ser:

  • Atribuído como searchable e retrievable
  • Strings do tipo Edm.String, Collection(Edm.String), subcampos de string de Collection(Edm.ComplexType)
  1. Entre no portal do Azure e navegue até um serviço de pesquisa que tenha a classificação semântica habilitada.

  2. Em Índices no painel de navegação esquerdo, abra um índice.

  3. Selecione Configurações Semânticas e, em seguida, selecione Adicionar Configuração Semântica.

    A página Nova Configuração Semântica é aberta com opções para selecionar um campo de título, campos de conteúdo e campos de palavra-chave. Apenas campos de string pesquisáveis e recuperáveis são elegíveis. Certifique-se de listar campos de conteúdo e campos de palavras-chave em ordem de prioridade.

    Screenshot that shows how to create a semantic configuration in the Azure portal.

    Selecione OK para salvar as alterações.

Migrar a partir de versões de pré-visualização

Se o seu código de classificação semântica estiver usando APIs de visualização, esta seção explica como migrar para versões estáveis. Você pode verificar os logs de alterações para verificar a disponibilidade geral:

Mudanças de comportamento:

  • A partir de 14 de julho de 2023, o ranker semântico é agnóstico de linguagem. Pode reclassificar resultados compostos por conteúdos multilingues, sem preconceitos para uma língua específica. Nas versões de visualização, a classificação semântica despriorizaria os resultados diferentes da linguagem especificada pelo analisador de campo.

  • Em 2021-04-30-Preview e todas as versões posteriores, para a API REST e todos os pacotes SDK destinados à mesma versão: semanticConfiguration (em uma definição de índice) define quais campos de pesquisa são usados na classificação semântica. Anteriormente, na API REST 2020-06-30-Preview, searchFields (em uma solicitação de consulta) foi usado para especificação e priorização de campo. Esta abordagem só funcionou em 2020-06-30-Preview e está obsoleta em todas as outras versões.

Etapa 1: Remover queryLanguage

O motor de classificação semântica é agora agnóstico em relação à linguagem. Se queryLanguage for especificado na lógica da consulta, ele não será mais usado para classificação semântica, mas ainda se aplicará à correção ortográfica.

Mantenha queryLanguage se estiver a utilizar o corretor ortográfico e se o valor do idioma for suportado pelo corretor ortográfico. A verificação ortográfica tem disponibilidade limitada em todos os idiomas.

Caso contrário, exclua queryLanguage.

Passo 2: Substitua searchFields por semanticConfiguration

Se o seu código chamar a API REST 2020-06-30-Preview ou pacotes SDK beta direcionados a essa versão da API REST, você pode estar usando searchFields em uma solicitação de consulta para especificar campos semânticos e prioridades. Nas versões beta iniciais, searchFields tinha uma dupla finalidade, restringindo a consulta inicial aos campos listados em searchFields, e também definindo a prioridade do campo se a classificação semântica fosse usada. Em versões posteriores, searchFields mantém sua finalidade original, mas não é mais usado para classificação semântica.

Mantenha searchFields em solicitações de consulta se estiver usando-o para limitar a pesquisa de texto completo à lista de campos nomeados.

Adicione um semanticConfiguration a um esquema de índice para especificar a priorização de campo, seguindo as instruções neste artigo.

Próximos passos

Teste sua configuração semântica executando uma consulta semântica.