Telemetriegegevens verzamelen voor analyse van zoekverkeer

Analyse van zoekverkeer is een patroon voor het verzamelen van telemetrie over gebruikersinteracties met uw Azure AI Search-toepassing, zoals door de gebruiker geïnitieerde klikgebeurtenissen en toetsenbordinvoer. Met behulp van deze informatie kunt u de effectiviteit van uw zoekoplossing bepalen, waaronder populaire zoektermen, doorklikken en welke query-invoer nul resultaten oplevert.

Dit patroon heeft een afhankelijkheid van Application Insights (een functie van Azure Monitor) om gebruikersgegevens te verzamelen. Hiervoor moet u instrumentatie toevoegen aan uw clientcode, zoals beschreven in dit artikel. Ten slotte hebt u een rapportagemechanisme nodig om de gegevens te analyseren. We raden Power BI aan, maar u kunt het toepassingsdashboard of een hulpprogramma gebruiken dat verbinding maakt met Application Insights.

Notitie

Het patroon dat in dit artikel wordt beschreven, is bedoeld voor geavanceerde scenario's en clickstreamgegevens die worden gegenereerd door code die u aan uw client toevoegt. Servicelogboeken zijn daarentegen eenvoudig in te stellen, bieden een reeks metrische gegevens en kunnen zonder code worden uitgevoerd in de portal. Het inschakelen van logboekregistratie wordt aanbevolen voor alle scenario's. Zie Logboekgegevens verzamelen en analyseren voor meer informatie.

Relevante zoekgegevens identificeren

Als u nuttige metrische gegevens wilt hebben voor het analyseren van zoekverkeer, moet u enkele signalen van de gebruikers van uw zoektoepassing vastleggen. Deze signalen geven inhoud aan waarin gebruikers geïnteresseerd zijn en die ze relevant achten. Voor analyse van zoekverkeer zijn dit onder andere:

  • Door de gebruiker gegenereerde zoekgebeurtenissen: Alleen zoekquery's die door een gebruiker zijn geïnitieerd, zijn interessant. Andere zoekaanvragen, zoals zoekaanvragen die worden gebruikt om facetten te vullen of interne informatie op te halen, zijn niet belangrijk. Zorg ervoor dat u alleen door de gebruiker geïnitieerde gebeurtenissen instrumenteren om scheefheid of vooroordelen in uw resultaten te voorkomen.

  • Door de gebruiker gegenereerde klikgebeurtenissen: op een pagina met zoekresultaten betekent een klikgebeurtenis meestal dat een document een relevant resultaat is voor een specifieke zoekquery.

Door zoeken te koppelen en te klikken op gebeurtenissen met een correlatie-id, krijgt u meer inzicht in hoe goed de zoekfunctionaliteit van uw toepassing presteert.

Analyse van zoekverkeer toevoegen

Open op de portalpagina voor uw Azure AI-Search-service de pagina Search Traffic Analytics voor toegang tot een cheatsheet voor het volgen van dit telemetriepatroon. Op deze pagina kunt u een Application Insights-resource selecteren of maken, de instrumentatiesleutel ophalen, fragmenten kopiëren die u kunt aanpassen voor uw oplossing en een Power BI-rapport downloaden dat is gebouwd op basis van het schema dat in het patroon wordt weergegeven.

Schermopname van de portalopdracht en -pagina voor het instellen van Application Insights.

Stap 1: Application Insights instellen

Selecteer een bestaande Application Insights-resource of maak er een als u er nog geen hebt.

Een snelkoppeling die geschikt is voor sommige Visual Studio-projecttypen, wordt weergegeven in de volgende stappen.

Ter illustratie gebruiken deze stappen de client van Zoeken toevoegen aan een statische web-app.

  1. Open uw oplossing in Visual Studio.

  2. Selecteer Verbinding maken ed services>Toevoegen> Azure-toepassing Insights in het menu Project.

  3. Selecteer Azure-toepassing Insights in Verbinding maken naar afhankelijkheid en selecteer vervolgens Volgende.

  4. Selecteer uw Azure-abonnement, uw Application Insights-resource en selecteer Voltooien.

Op dit moment is uw toepassing ingesteld voor toepassingsbewaking, wat betekent dat alle pagina's in uw client-app worden bijgehouden met standaardgegevens.

Als deze snelkoppeling niet voor u werkt, raadpleegt u Telemetrie aan de serverzijde van Application Insights inschakelen.

Stap 2: Instrumentatie toevoegen

Voeg instrumentatiecode toe aan uw clienttoepassing. De pagina Search Traffic Analytics in Azure Portal bevat codefragmenten die u in uw toepassingscode kunt plakken.

Een telemetrieclient maken

Maak een object waarmee gebeurtenissen naar Application Insights worden verzonden. U kunt instrumentatie toevoegen aan de toepassingscode aan de serverzijde of code aan de clientzijde die wordt uitgevoerd in een browser, uitgedrukt in C# en JavaScript-varianten. Zie ondersteunde platforms en frameworks voor andere talen.

Telemetrie aan de serverzijde legt metrische gegevens vast op de toepassingslaag, bijvoorbeeld in toepassingen die worden uitgevoerd als een webservice in Azure of als een on-premises app in een bedrijfsnetwerk. Telemetrie aan de serverzijde legt zoek- en klikgebeurtenissen vast, de positie van een document in resultaten en querygegevens, maar uw gegevensverzameling wordt afgestemd op de informatie die beschikbaar is op die laag.

Op de client hebt u mogelijk andere code die queryinvoer bewerkt, navigatie toevoegt of context bevat (bijvoorbeeld query's die zijn geïnitieerd vanaf een startpagina versus een productpagina). Als dit uw oplossing beschrijft, kunt u kiezen voor instrumentatie aan de clientzijde, zodat uw telemetrie de extra details weergeeft. Hoe deze extra details worden verzameld, valt buiten het bereik van dit patroon, maar u kunt Application Insights voor webpagina's bekijken voor hulp bij die beslissing.

U kunt de instrumentatiesleutel ophalen uit Azure Portal, op de pagina's voor Application Insights of op de pagina Traffic Analytics zoeken voor Azure AI Search.

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

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

Gebeurtenissen voor zoeken in logboeken

Telkens wanneer een zoekaanvraag wordt uitgegeven door een gebruiker, moet u dat registreren als een zoekactie met het volgende schema voor een aangepaste Application Insights-gebeurtenis. Vergeet niet om alleen door de gebruiker gegenereerde zoekquery's te registreren.

  • SearchServiceName: (tekenreeks) zoekservicenaam
  • SearchId: (guid) unieke id van de zoekquery (komt in het zoekantwoord)
  • IndexName: (tekenreeks) zoekserviceindex die moet worden opgevraagd
  • QueryTerms: (tekenreeks) zoektermen die door de gebruiker zijn ingevoerd
  • ResultCount: (int) aantal documenten dat is geretourneerd (komt in het zoekantwoord)
  • ScoringProfile: (tekenreeks) naam van het gebruikte scoreprofiel, indien van toepassing

Notitie

Vraag het aantal door de gebruiker gegenereerde query's aan door $count=true toe te voegen aan uw zoekquery. Zie Documenten zoeken (REST) voor meer informatie.

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);

Klik op gebeurtenissen in logboek

Telkens wanneer een gebruiker op een document klikt, is dat een signaal dat moet worden geregistreerd voor zoekanalysedoeleinden. Gebruik aangepaste gebeurtenissen van Application Insights om deze gebeurtenissen te registreren met het volgende schema:

  • ServiceName: (tekenreeks) zoekservicenaam
  • SearchId: (guid) unieke id van de gerelateerde zoekquery
  • DocId: (tekenreeks) document-id
  • Positie: (int) positie van het document op de pagina met zoekresultaten

Notitie

Positie verwijst naar de kardinaliteit in uw toepassing. U kunt dit nummer instellen, zolang het altijd hetzelfde is, om vergelijking mogelijk te maken.

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);

Stap 3: Analyseren in Power BI

Nadat u uw app hebt geïnstrueerd en gecontroleerd of uw toepassing correct is verbonden met Application Insights, downloadt u een vooraf gedefinieerde rapportsjabloon om gegevens te analyseren in Power BI Desktop. Het rapport bevat vooraf gedefinieerde grafieken en tabellen die handig zijn voor het analyseren van de extra gegevens die zijn vastgelegd voor analyse van zoekverkeer.

  1. Selecteer in Azure Portal op de pagina's van de zoekservice onder Instellingen de optie Traffic Analytics doorzoeken.

  2. Selecteer Power BI Desktop downloaden om Power BI te installeren.

  3. Selecteer Power BI-rapport downloaden om het rapport op te halen.

  4. Het rapport wordt geopend in Power BI Desktop en u wordt gevraagd verbinding te maken met Application Insights en referenties op te geven. U vindt verbindingsgegevens op de Azure Portal-pagina's voor uw Application Insights-resource. Geef voor referenties dezelfde gebruikersnaam en hetzelfde wachtwoord op die u gebruikt voor aanmelding bij de portal.

    Schermopname die laat zien hoe u vanuit Power BI verbinding maakt met Application Insights.

  5. Selecteer Laden.

Het rapport bevat grafieken en tabellen waarmee u beter geïnformeerde beslissingen kunt nemen om uw zoekprestaties en relevantie te verbeteren.

Metrische gegevens bevatten de volgende items:

  • Zoekvolume en populairste termendocumentparen: termen die resulteren in hetzelfde document waarop is geklikt, gesorteerd op klikken.
  • Zoekopdrachten zonder klikken: termen voor topquery's die geen klikken registreren

In de volgende schermopname ziet u hoe een ingebouwd rapport eruit kan zien als u alle schema-elementen hebt gebruikt.

Schermopname van het ingebouwde rapport met alle beschikbare schema-elementen.

Volgende stappen

Instrumenteer uw zoektoepassing om krachtige en inzichtelijke gegevens over uw zoekservice te verkrijgen.

Meer informatie over Application Insights vindt u op de pagina met prijzen voor meer informatie over de verschillende servicelagen.

Meer informatie over het maken van rapporten. Zie Aan de slag met Power BI Desktop voor meer informatie.