Migliorare la rilevanza dei risultati aggiungendo profili di punteggio

Completato

Azure AI Search usa l'algoritmo di classificazione della somiglianza BM25. L'algoritmo assegna punteggi ai documenti in base ai termini di ricerca usati.

Di seguito verrà illustrato come aggiungere profili di punteggio per modificare i punteggi dei documenti in base ai propri criteri.

Modalità di calcolo dei punteggi di ricerca

L'assegnazione dei punteggi è l'ultima fase di elaborazione di una query di ricerca.

Diagramma che mostra la fase di punteggio della ricerca evidenziata.

Il motore di ricerca assegna un punteggio ai documenti restituiti dalle prime tre fasi. Il punteggio è una funzione del numero di volte in cui i termini di ricerca identificati vengono visualizzati in un documento, delle dimensioni del documento e della rarità di ognuno dei termini. Per impostazione predefinita, i risultati della ricerca vengono ordinati in base al punteggio di ricerca, partendo dal più alto. Se due documenti presentano lo stesso punteggio di ricerca, è possibile annullare la parità aggiungendo una clausola $orderby.

Migliorare il punteggio per i documenti più rilevanti

Poiché il punteggio predefinito si basa sulla frequenza dei termini e sulla rarità, il punteggio finale calcolato potrebbe non restituire il punteggio più alto per il documento più rilevante. Ogni set di dati è diverso, quindi AI Search consente di influenzare il punteggio di un documento usando i profili di punteggio.

Diagramma che mostra un punteggio di campo ponderato.

Il profilo di punteggio più semplice definisce pesi diversi per i campi di un indice. Nell'esempio precedente, l'indice Hotel presenta un profilo di punteggio con il campo Descrizione cinque volte più rilevante rispetto ai dati dei campi Posizione o Camere. Il campo Categoria è due volte più rilevante del campo Nome hotel.

Il profilo di punteggio può anche includere funzioni, tra cui la distanza o la novità. Le funzioni offrono un maggiore controllo rispetto alla semplice ponderazione; ad esempio, è possibile definire la durata del boosting applicato ai documenti più recenti prima che ottengano lo stesso punteggio dei documenti meno recenti.

La potenza dei profili di punteggio significa che, invece di potenziare un termine specifico in una richiesta di ricerca, è possibile applicare un profilo di punteggio a un indice, in modo che i campi vengano potenziati automaticamente per tutte le query.

Aggiungere un profilo di punteggio ponderato

È possibile aggiungere fino a 100 profili di punteggio a un indice di ricerca. Il modo più semplice per creare un profilo di punteggio è nel portale di Azure.

  1. Passare al servizio di ricerca.
  2. Selezionare Indici, quindi selezionare l'indice a cui aggiungere un profilo di punteggio.
  3. Selezionare Profili di punteggio.
  4. Selezionare + Aggiungi profilo di punteggio.
  5. In Nome profiloimmettere un nome univoco.
  6. Per impostare il profilo di punteggio come predefinito da applicare a tutte le ricerche, selezionare Imposta come profilo predefinito.
  7. In Nome campo, selezionare un campo. Quindi per Peso, immettere un valore di peso.
  8. Seleziona Salva.

Screenshot del riquadro dei profili di punteggio del portale di Azure.

Nell'esempio precedente il profilo di punteggio boost-category è stato aggiunto a hotels-sample-index. La categoria ha un peso pari a cinque.

Il profilo è stato impostato anche come profilo predefinito. È quindi possibile usare questa query di ricerca:

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

I risultati ora corrispondono alla stessa query con un termine potenziato:

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

È possibile controllare quale profilo di punteggio viene applicato a una query di ricerca aggiungendo il parametro &scoringProfile=PROFILE NAME.

I profili di punteggio possono anche essere aggiunti a livello di codice usando l'API REST Update Index o negli SDK di Azure, ad esempio la classe ScoringProfile in Azure SDK per .NET.

Usare le funzioni in un profilo di punteggio

Le funzioni disponibili da aggiungere a un profilo di punteggio sono:

Funzione Descrizione
Grandezza Modifica i punteggi in base a un intervallo di valori per un campo numerico
Aggiornamento Modifica i punteggi in base all'aggiornamento dei documenti come specificato da un campo DateTimeOffset
Distanza Modifica i punteggi in base alla distanza tra una posizione di riferimento e un campo GeographyPoint
Tag Modifica i punteggi in base ai valori dei tag comuni nei documenti e nelle query

Ad esempio, tramite l'indice Hotel la funzione di rilevanza può essere applicata al campo Valutazione. Il portale di Azure illustra come completare i parametri per ogni funzione.

Screenshot che mostra i parametri per la funzione di grandezza.