Melhorar a relevância dos resultados adicionando perfis de pontuação

Concluído

A Pesquisa de IA do Azure usa o algoritmo de classificação de similaridade BM25. O algoritmo pontua os documentos com base nos termos de pesquisa usados.

Aqui, você verá como adicionar perfis de pontuação para alterar as pontuações dos documentos com base em seus critérios.

Como as pontuações de pesquisa são calculadas

A pontuação é a última fase do processamento de uma consulta de pesquisa.

A diagram showing the score phase of search highlighted.

O mecanismo de pesquisa pontua os documentos retornados das três primeiras fases. A pontuação é uma função do número de vezes que os termos de pesquisa identificados aparecem em um documento, do tamanho do documento e da raridade de cada um dos termos. Por padrão, os resultados da pesquisa são ordenados pela pontuação de pesquisa, com a mais alta primeiro. Se dois documentos tiverem uma pontuação de pesquisa idêntica, você poderá eliminar o empate adicionando uma cláusula $orderby.

Aprimorar a pontuação para documentos mais relevantes

Como a pontuação padrão trabalhar com a frequência e a raridade dos termos, a pontuação calculada final pode não retornar a pontuação mais alta para o documento mais relevante. Cada conjunto de dados é diferente, portanto, a Pesquisa de IA permite influenciar a pontuação de um documento usando perfis de pontuação.

A diagram showing a weighted field score.

O perfil de pontuação mais simples define diferentes pesos para os campos em um índice. No exemplo acima, o índice Hotel tem um perfil de pontuação cujo campo Descrição é cinco vezes mais relevante do que os dados nos campos Localização ou Quartos. O campo Categoria é duas vezes mais relevante que HotelName.

O perfil de pontuação também pode incluir funções, por exemplo, distância ou atualidade. As funções fornecem mais controle do que a ponderação simples, por exemplo, você pode definir uma duração de aumento aplicada a documentos mais recentes antes que eles atinjam a mesma pontuação que documentos mais antigos.

O poder dos perfis de pontuação significa que, em vez de aumentar um termo específico em uma solicitação de pesquisa, você pode aplicar um perfil de pontuação a um índice para que os campos sejam aumentados automaticamente para todas as consultas.

Adicionar um perfil de pontuação ponderada

Você pode adicionar até 100 perfis de pontuação a um índice de pesquisa. A maneira mais simples de criar um perfil de pontuação é no portal do Azure.

  1. Navegue até seu serviço de pesquisa.
  2. Selecione Índices e, selecione o índice ao qual adicionar um perfil de pontuação.
  3. Selecione Perfis de pontuação.
  4. Selecione + Adicionar perfil de pontuação.
  5. Em Nome do perfil, insira um nome exclusivo.
  6. Para definir o perfil de pontuação como um padrão a ser aplicado a todas as pesquisas, selecione Definir como perfil padrão.
  7. Em Nome do campo, selecione um campo. Em Peso, insira um valor de peso.
  8. Selecione Salvar.

A screenshot of the Azure portal scoring profiles pane.

No exemplo acima, o perfil de pontuação boost-category foi adicionado ao hotels-sample-index. A Categoria tem um peso de cinco.

O perfil também foi definido como o perfil padrão. Você pode usar esta consulta de pesquisa:

search=luxury AND Tags:'air con'*&$select=HotelId, HotelName, Category, Tags, Description&$count=true&queryType=full

Os resultados agora correspondem à mesma consulta com um termo aumentado:

search=(Description:luxury OR Category:luxury^5) AND Tags:'air con'*&$select=HotelId, HotelName, Category, Tags, Description&$count=true&queryType=full

Você pode controlar qual perfil de pontuação é aplicado a uma consulta de pesquisa acrescentando o parâmetro &scoringProfile=PROFILE NAME.

Os perfis de pontuação também podem ser adicionados programaticamente usando a API REST Atualizar Índice ou em SDKs do Azure, como a classe ScoreProfile no SDK do Azure para .NET.

Usar funções em um perfil de pontuação

As funções disponíveis para adicionar a um perfil de pontuação são:

Função Descrição
Magnitude Altere as pontuações com base em um intervalo de valores para um campo numérico
Atualização Altere as pontuações com base na atualidade dos documentos conforme fornecido por um campo DateTimeOffset
Distância Altere as pontuações com base na distância entre uma localização de referência e um campo GeographyPoint
Marca Altere as pontuações com base em valores de marca comuns nos documentos e nas consultas

Por exemplo, usando o índice de hotel, a função de magnitude pode ser aplicada ao campo Classificação. O portal do Azure orientará você a preencher os parâmetros para cada função.

A screenshot showing the parameters for the magnitude function.