Melhorar a relevância dos resultados adicionando perfis de pontuação
O Azure AI Search usa o algoritmo de classificação de semelhança BM25. O algoritmo pontua os documentos com base nos termos de pesquisa utilizados.
Aqui, você verá como adicionar perfis de pontuação para alterar as pontuações de documentos com base em seus próprios critérios.
Como são calculadas as pontuações de pesquisa
A pontuação é a última fase do processamento de uma consulta de pesquisa.
O motor de busca pontua os documentos devolvidos das três primeiras fases. A pontuação é 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, a mais alta primeiro. Se dois documentos tiverem uma pontuação de pesquisa idêntica, pode desempatar adicionando uma $orderby
cláusula.
Melhorar a pontuação de documentos mais relevantes
Como a pontuação padrão funciona na frequência dos termos e na raridade, a pontuação final calculada 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 que você influencie a pontuação de um documento usando perfis de pontuação.
O perfil de pontuação mais simples define pesos diferentes para campos em um índice. No exemplo acima, o índice de hotéis tem um perfil de pontuação que tem o campo Descrição como cinco vezes mais relevante do que os dados nos campos Localização ou Quartos. O campo Categoria é duas vezes mais relevante do que o HotelName.
O perfil de pontuação também pode incluir funções, por exemplo, distância ou frescor. As funções fornecem mais controle do que a simples ponderação, por exemplo, você pode definir a duração de aumento aplicada a documentos mais recentes antes que eles pontuem o mesmo que documentos mais antigos.
O poder da pontuação de perfis significa que, em vez de impulsionar 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 impulsionados 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.
- Navegue até o serviço de pesquisa.
- Selecione Índices e, em seguida, selecione o índice ao qual adicionar um perfil de pontuação.
- Selecione Perfis de pontuação.
- Selecione + Adicionar perfil de pontuação.
- Em Nome do perfil, insira um nome exclusivo.
- Para definir o perfil de pontuação como padrão a ser aplicado a todas as pesquisas, selecione Definir como perfil padrão.
- Em Nome do campo, selecione um campo. Em seguida, para Peso, insira um valor de peso.
- Selecione Guardar.
No exemplo acima, o perfil de boost-category
pontuação foi adicionado ao hotels-sample-index
. A categoria tem peso cinco.
O perfil também foi definido como o perfil padrão. Em seguida, pode utilizar 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 impulsionado:
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 anexando o &scoringProfile=PROFILE NAME
parâmetro.
Os perfis de pontuação também podem ser adicionados programaticamente usando a API REST do Índice de Atualização ou em SDKs do Azure, como a classe ScoringProfile 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:
Function | Description |
---|---|
Magnitude | Alterar pontuações com base em um intervalo de valores para um campo numérico |
Atualização | Alterar pontuações com base na atualização de documentos fornecida por um campo DateTimeOffset |
Distância | Alterar pontuações com base na distância entre um local de referência e um campo GeographyPoint |
Etiqueta | Alterar pontuações com base em valores de tag comuns em documentos e consultas |
Por exemplo, usando o índice do hotel, a função magnitude pode ser aplicada ao campo Classificação. O portal do Azure irá guiá-lo através da conclusão dos parâmetros para cada função.