Condividi tramite


Raccogliere i dati di telemetria per Analisi del traffico di ricerca

Analisi del traffico di ricerca è un modello per la raccolta di dati di telemetria sulle interazioni degli utenti con l'applicazione Ricerca con Intelligenza Artificiale di Azure, ad esempio gli eventi Click avviati dall'utente e gli input da tastiera. Usando queste informazioni, è possibile determinare l'efficacia della soluzione di ricerca, inclusi i termini di ricerca più diffusi, il tasso di click-through e gli input della query che producono zero risultati.

Questo modello dipende da Application Insights (una funzionalità di Monitoraggio di Azure) per la raccolta dei dati degli utenti. È necessario aggiungere la strumentazione al codice client, come descritto in questo articolo. Infine, è necessario un meccanismo di creazione di report per analizzare i dati. È consigliabile Power BI, ma è possibile usare qualsiasi strumento di visualizzazione che si connette ad Application Insights.

Nota

Il modello descritto in questo articolo è destinato agli scenari avanzati e ai dati clickstream generati dal codice aggiunto al client. Al contrario, i log del servizio sono facili da configurare, offrono numerose metriche e possono essere eseguiti nel portale senza che sia necessario alcun codice. L'abilitazione della registrazione è consigliata per tutti gli scenari. Per altre informazioni, vedere Raccogliere e analizzare i dati dei log.

Identificare i dati di ricerca rilevanti

Per ottenere metriche utili per l'analisi del traffico di ricerca, è necessario registrare alcuni segnali provenienti dagli utenti dell'applicazione di ricerca. Questi segnali indicano contenuti che gli utenti trovano interessanti e considerano rilevanti. Per l'analisi del traffico di ricerca, includono:

  • Eventi di ricerca generati dagli utenti. Sono interessanti solo le query di ricerca avviate da un utente. Altre richieste di ricerca, ad esempio quelle usate per popolare facet o recuperare informazioni interne, non sono importanti. Assicurarsi di instrumentare solo gli eventi avviati dall'utente per evitare distorsioni o bias nei risultati.

  • Eventi Click generati dagli utenti: in una pagina dei risultati della ricerca un evento Click in genere indica che un documento è un risultato rilevante per una specifica query di ricerca.

Collegando la ricerca e gli eventi Click con un ID di correlazione, è possibile conoscere in modo più approfondito le prestazioni della funzionalità di ricerca dell'applicazione.

Aggiungere Analisi del traffico di ricerca

Nella pagina del portale del servizio Ricerca con Intelligenza Artificiale di Azure, aprire la pagina Analisi del traffico di ricerca per accedere a un foglio informativo utile per seguire questo modello di telemetria. Da questa pagina è possibile selezionare o creare una risorsa Application Insights, ottenere la chiave di strumentazione, copiare frammenti che è possibile adattare per la soluzione e scaricare un report di Power BI compilato in base allo schema riflesso nel modello.

Screenshot del comando e della pagina del portale per la configurazione di Application Insights.

Passaggio 1: Impostare Application Insights

Selezionare una risorsa di Application Insights esistente o crearne una, se non è già disponibile.

Di seguito è riportata una procedura utilizzabile per alcuni tipi di progetto di Visual Studio.

Come esempio, questi passaggi usano il client da Aggiungere la ricerca a un'app Web statica.

  1. Aprire la soluzione in Visual Studio.

  2. Nel menu Progetto selezionare Servizi connessi>Aggiungi>Azure Application Insights.

  3. In Connetti alla dipendenza selezionare Azure Application Insights e quindi selezionare Avanti.

  4. Selezionare la sottoscrizione di Azure, la risorsa di Application Insights e quindi selezionare Fine.

A questo punto, l'applicazione è configurata per il monitoraggio, ovvero tutti i caricamenti di pagina nell'app client vengono registrati con le metriche predefinite.

Se questo collegamento non funziona, vedere Abilitare i dati di telemetria lato server di Application Insights.

Passaggio 2: Aggiungere la strumentazione

Aggiungere il codice di strumentazione all'applicazione client. La pagina Analisi del traffico di ricerca nel portale di Azure fornisce frammenti di codice che è possibile incollare nel codice dell'applicazione.

Creare un client di telemetria

Creare un oggetto per l'invio degli eventi ad Application Insights. È possibile aggiungere la strumentazione al codice dell'applicazione lato server o al codice lato client in esecuzione in un browser, espressi qui come varianti C# e JavaScript. Per altri linguaggi, vedere piattaforme e framework supportati.

La telemetria lato server acquisisce le metriche a livello di applicazione, ad esempio nelle applicazioni in esecuzione come servizio Web su Azure o come app locale in una rete aziendale. La telemetria lato server acquisisce la ricerca e gli eventi Click, la posizione di un documento nei risultati e le informazioni sulle query, ma l'ambito della raccolta dei dati sarà limitato alle informazioni disponibili in tale livello.

Sul client può essere presente altro codice che modifica gli input della query, aggiunge funzionalità di spostamento o include il contesto (ad esempio, le query avviate da una home page anziché da una pagina di un prodotto). Se la soluzione in uso presenta questi requisiti, è possibile optare per la strumentazione lato client, in modo che i dati di telemetria riflettano i dettagli aggiuntivi. Il modo in cui vengono raccolti i dettagli aggiuntivi esula dall'ambito di questo modello, ma è possibile consultare Application Insights per le pagine Web per altre indicazioni.

È possibile ottenere la chiave di strumentazione dal portale di Azure, nelle pagine di Application Insights o nella pagina Analisi del traffico di ricerca per Ricerca con Intelligenza Artificiale di Azure.

// Application Insights SDK: https://www.nuget.org/packages/Microsoft.ApplicationInsights.Web 

var telemetryClient = new TelemetryClient();
telemetryClient.InstrumentationKey = "0000000000000000000000000000";

Richiedere un ID di ricerca per la correlazione

Importante

Nel portale di Azure i frammenti di codice per le intestazioni delle richieste vengono creati usando una versione obsoleta di Azure SDK. Gi aggiornamenti sono in sospeso.

Per correlare le richieste di ricerca con i clic, è necessario disporre di un ID di correlazione che metta in correlazione questi due eventi distinti. Ricerca con Intelligenza Artificiale di Azure fornisce un ID di ricerca quando viene richiesto con un'intestazione HTTP.

L'ID di ricerca consente la correlazione delle metriche emesse da Ricerca con Intelligenza Artificiale di Azure per la richiesta stessa con le metriche personalizzate che si stanno registrando in Application Insights.

var client = new SearchClient(<SEARCH SERVICE NAME>, <INDEX NAME>, new AzureDefaultCredentials())
var headers = new Dictionary<string, List<string>>() { { "x-ms-azs-return-searchid", new List<string>() { "true" } } };
var response = await client.Documents.SearchWithHttpMessagesAsync(searchText: searchText, searchParameters: parameters, customHeaders: headers);
IEnumerable<string> headerValues;
string searchId = string.Empty;
if (response.Response.Headers.TryGetValues("x-ms-azs-searchid", out headerValues)){
	 searchId = headerValues.FirstOrDefault();
} 

Registrare gli eventi di ricerca

Ogni volta che un utente esegue una richiesta di ricerca, è necessario registrarla come evento di ricerca con lo schema seguente in un evento personalizzato di Application Insights. Ricordare di registrare solo le query di ricerca generate dall'utente.

  • SearchServiceName: (stringa) nome del servizio di ricerca
  • SearchId: (GUID) identificatore univoco della query di ricerca (incluso nella risposta alla ricerca)
  • IndexName: (stringa) indice del servizio di ricerca da sottoporre a query
  • QueryTerms: (stringa) termini di ricerca immessi dall'utente
  • ResultCount: (numero intero) numero di documenti restituiti (incluso nella risposta alla ricerca)
  • ScoringProfile: (stringa) nome del profilo di punteggio usato, se disponibile

Nota

Richiedere il conteggio delle query generate dall'utente mediante l'aggiunta di $count=true alla query di ricerca. Per altre informazioni, vedere Cercare documenti (API REST).

var properties = new Dictionary <string, string> {
	{"SearchServiceName", <SEARCH SERVICE NAME>},
	{"SearchId", <SEARCH ID>},
	{"IndexName", <INDEX NAME>},
	{"QueryTerms", <SEARCH TERMS>},
	{"ResultCount", <RESULTS COUNT>},
	{"ScoringProfile", <SCORING PROFILE USED>}
};

telemetryClient.TrackEvent("Search", properties);

Registrare gli eventi Click

Ogni clic di un utente su un documento è un segnale che deve essere registrato a scopo di analisi delle ricerche. Utilizzare gli eventi personalizzati di Application Insights per registrare questi eventi con lo schema seguente:

  • ServiceName: (stringa) nome del servizio di ricerca
  • SearchId: (GUID) identificatore univoco della query di ricerca correlata
  • DocId: (stringa) identificatore del documento
  • Position: (numero intero) posizione del documento nella pagina dei risultati della ricerca

Nota

Position fa riferimento all'ordine cardinale nell'applicazione. È possibile impostare questo numero, purché si tratti sempre dello stesso, per consentire il confronto.

var properties = new Dictionary <string, string> {
	{"SearchServiceName", <SEARCH SERVICE NAME>},
	{"SearchId", <SEARCH ID>},
	{"ClickedDocId", <CLICKED DOCUMENT ID>},
	{"Rank", <CLICKED DOCUMENT POSITION>}
};

telemetryClient.TrackEvent("Click", properties);

Passaggio 3: Eseguire l'analisi in Power BI

Dopo avere instrumentato l'app e averne verificata la corretta connessione ad Application Insights, è possibile scaricare un modello di report predefinito per l'analisi dei dati in Power BI Desktop. Il report contiene tabelle e grafici predefiniti utili per analizzare i dati aggiuntivi acquisiti per Analisi del traffico di ricerca.

  1. Nelle pagine del servizio di ricerca del portale di Azure, in Impostazioniselezionare Analisi del traffico di ricerca.

  2. Selezionare Ottenere Power BI Desktop per installare Power BI.

  3. Selezionare Scaricare il report di Power BI per ottenere il report.

  4. Il report viene aperto in Power BI Desktop e viene richiesto di connettersi ad Application Insights e di specificare le credenziali. È possibile trovare le informazioni di connessione nelle pagine del portale di Azure relative alla risorsa Application Insights. Per le credenziali, specificare lo stesso nome utente e la stessa password usati per l'accesso al portale.

    Screenshot che mostra come connettersi ad Application Insights da Power BI.

  5. Seleziona Carica.

Il report contiene grafici e tabelle che consentono di prendere decisioni più informate per migliorare le prestazioni di ricerca e la rilevanza.

Sono incluse le metriche seguenti:

  • Volume di ricerca e coppie termine-documento più comuni: termini che producono lo stesso documento selezionato, ordinati per clic.
  • Ricerche senza clic: termini delle query principali per i quali non sono registrati clic.

Lo screenshot seguente mostra gli elementi dati che il report potrebbe contenere.

Screenshot che mostra gli elementi dello schema disponibili nel catalogo dati.

Passaggi successivi

Instrumentare l'applicazione di ricerca per ottenere dati estremamente utili e dettagliati relativi al servizio di ricerca.

È possibile trovare altre informazioni su Application Insights e visitare la pagina dei prezzi per conoscere i diversi livelli di servizio.

Altre informazioni sulla creazione di rapporti. Per informazioni dettagliate, vedere Introduzione a Power BI Desktop.