Bagikan melalui


Mengumpulkan data telemetri untuk analitik lalu lintas pencarian

Analitik lalu lintas pencarian adalah pola untuk mengumpulkan telemetri tentang interaksi pengguna dengan aplikasi Azure AI Search Anda, seperti peristiwa clickstream yang dimulai pengguna dan input keyboard. Dengan menggunakan informasi ini, Anda dapat menentukan efektivitas solusi pencarian Anda, termasuk laju klik dan input kueri mana yang menghasilkan hasil nol.

Instrumentasi memiliki bagian-bagian berikut:

  • Menambahkan klien telemetri
  • Mengubah permintaan pencarian untuk menyertakan Id korelasi yang memetakan hasil pencarian ke tindakan pengguna
  • Membuat dan mengirim peristiwa kustom ke Application Insights dan menggunakan alat visualisasi dan pelaporan untuk melihat data peristiwa

Pola ini membutuhkan dependensi pada Application Insights (fitur Azure Monitor) untuk mengumpulkan data pengguna. Ini mengharuskan Anda menambahkan instrumentasi ke kode aplikasi Anda, seperti yang dijelaskan dalam artikel ini. Terakhir, Anda memerlukan mekanisme pelaporan untuk menganalisis data. Anda dapat menggunakan alat visualisasi apa pun yang terhubung ke Application Insights.

Catatan

Pola yang dijelaskan dalam artikel ini adalah untuk skenario tingkat lanjut dan data aliran klik yang dihasilkan oleh kode yang Anda tambahkan ke klien Anda. Sebaliknya, log layanan mudah disiapkan, menyediakan berbagai metrik termasuk istilah pencarian, dan dapat dilakukan di portal tanpa kode yang diperlukan. Kami menyarankan agar Anda mengaktifkan pengelogan untuk semua skenario. Untuk informasi selengkapnya, lihat Mengumpulkan dan menganalisis data log.

Prasyarat

  • Pencarian Azure AI, wilayah apa pun, tingkat dasar, dan yang lebih baru.

  • Application Insights.

  • Aplikasi klien kaya yang memberikan pengalaman pencarian interaktif yang mencakup peristiwa clickstream atau tindakan pengguna lain yang ingin Anda korelasikan dengan pilihan hasil pencarian.

Mengidentifikasi data pencarian yang relevan

Untuk mengumpulkan metrik yang berguna untuk analitik lalu lintas pencarian, perlu untuk mencatat beberapa sinyal dari pengguna aplikasi pencarian Anda. Sinyal ini menandakan konten yang diminati pengguna dan dianggap relevan. Untuk analitik lalu lintas pencarian, ini termasuk:

  • Peristiwa pencarian yang dibuat pengguna: Hanya kueri pencarian yang diawali oleh pengguna yang menarik. Permintaan pencarian lainnya, seperti yang digunakan untuk mengisi faset atau mengambil informasi internal, tidak penting. Pastikan untuk hanya menginstrumentasikan peristiwa yang dimulai pengguna untuk menghindari kemiringan atau bias dalam hasil Anda.

  • Peristiwa clickstream yang dihasilkan pengguna: Pada halaman hasil pencarian, peristiwa clickstream umumnya berarti bahwa dokumen adalah hasil yang relevan untuk kueri pencarian tertentu.

Dalam kode aplikasi, Anda harus menghubungkan peristiwa ini dengan hasil pencarian yang dikembalikan dari kueri tertentu. Dengan menautkan peristiwa pencarian dan clickstream dengan ID korelasi, Anda dapat memperoleh pemahaman yang lebih mendalam tentang seberapa baik performa fungsionalitas pencarian aplikasi Anda.

Menambahkan analitik lalu lintas pencarian

Untuk Pencarian Azure AI, portal Microsoft Azure menyediakan halaman Analitik Lalu Lintas Pencarian yang memiliki cuplikan kode C# dan JavaScript untuk menambahkan klien telemetri, header permintaan, dan properti yang diperlukan untuk peristiwa log kustom.

Penting

Halaman Portal analitik lalu lintas Pencarian saat ini sudah kedaluarsa dan mereferensikan pustaka klien yang sudah usang. Solusinya adalah menggunakan cuplikan kode dari repositori GitHub azure-search-traffic-analytics . Artikel ini menyertakan cuplikan kode dari repositori GitHub.

Cuplikan layar perintah dan halaman portal untuk menyiapkan Application Insights.

Langkah 1: Menyiapkan Application Insights

Buat objek yang mengirim peristiwa ke Application Insights. Anda dapat menambahkan instrumentasi ke kode aplikasi sisi server atau kode sisi klien yang berjalan di browser, yang dinyatakan di sini sebagai varian C# dan JavaScript. Untuk bahasa lain, lihat platform dan kerangka kerja yang didukung.

Telemetri sisi server menangkap metrik di lapisan aplikasi, misalnya dalam aplikasi yang berjalan sebagai layanan web di Azure, atau sebagai aplikasi lokal di jaringan perusahaan. Telemetri sisi server menangkap peristiwa pencarian dan clickstream, posisi dokumen dalam hasil, dan informasi kueri, tetapi pengumpulan data Anda akan dilingkupkan ke informasi apa pun yang tersedia di lapisan tersebut.

Pada klien, Anda mungkin memiliki kode lain yang memanipulasi input kueri, menambahkan navigasi, atau menyertakan konteks (misalnya, kueri yang dimulai dari halaman beranda versus halaman produk). Jika ini menjelaskan solusi Anda, Anda mungkin memilih instrumentasi sisi klien sehingga telemetri Anda mencerminkan detail tambahan. Bagaimana detail tambahan ini dikumpulkan melampaui cakupan pola ini, tetapi Anda dapat meninjau Application Insights untuk halaman web untuk bantuan dengan keputusan tersebut.

Dalam langkah ini, berikan string koneksi ke Application Insights.

Pintasan yang berfungsi untuk beberapa jenis proyek Visual Studio tercermin dalam langkah-langkah berikut.

  1. Buka solusi Anda di Visual Studio.

  2. Pada menu Proyek, pilih Layanan>tersambung Tambahkan>Azure Application Insights.

  3. Di Sambungkan ke dependensi, pilih Azure Application Insights, lalu pilih Berikutnya.

  4. Pilih langganan Azure Anda, sumber daya Application Insights Anda, lalu pilih Selesai.

Pada titik ini, aplikasi Anda disiapkan untuk pemantauan aplikasi, yang berarti semua pemuatan halaman di aplikasi klien Anda dilacak dengan metrik default.

Jika pintasan ini tidak berfungsi untuk Anda, lihat Mengaktifkan telemetri sisi server Application Insights atau lihat cuplikan kode di tab yang berdekatan.

Langkah 2: Tambahkan instrumentasi

Tambahkan kode instrumentasi ke aplikasi klien Anda.

Menghubungkan peristiwa clickstream dengan hasil pencarian

Untuk menghubungkan permintaan pencarian dengan klik, Anda harus memiliki ID korelasi yang menghubungkan dua peristiwa berbeda ini. Pencarian Azure AI memberi Anda ID pencarian saat Anda memintanya dengan header HTTP.

Memiliki ID pencarian memungkinkan korelasi metrik yang dipancarkan oleh Azure AI Search untuk permintaan itu sendiri, dengan metrik kustom yang Anda log di Application Insights.

var client = new SearchClient(new Uri("https://contoso.search.windows.net"), "hotels-sample-index", new DefaultAzureCredential());

// Generate a new correlation id for logs
string searchId = Guid.NewGuid().ToString();
string searchText = "*";
SearchResults<SearchDocument> searchResults;

// Set correlation id for search request
using (HttpPipeline.CreateClientRequestIdScope(clientRequestId: searchId))
{
    searchResults = client.Search<SearchDocument>(searchText, options: new SearchOptions { IncludeTotalCount = true } );
}

Mencatat peristiwa kustom

Setiap kali permintaan pencarian dikeluarkan oleh pengguna, Anda harus mencatatnya sebagai peristiwa pencarian dengan skema berikut pada peristiwa kustom Application Insights. Ingatlah untuk mencatat hanya kueri pencarian yang dibuat pengguna.

  • SearchId: (guid) pengidentifikasi unik kueri pencarian (disertakan dalam respons pencarian)
  • SearchServiceName: (string) nama layanan pencarian
  • IndexName: (string) indeks layanan pencarian yang akan dikueri
  • SearchText: (string) istilah pencarian yang dimasukkan oleh pengguna
  • ResultCount: (int) jumlah dokumen yang dikembalikan (disertakan dalam respons pencarian)

Catatan

Minta jumlah kueri yang dihasilkan pengguna dengan menambahkan $count=true ke kueri pencarian Anda. Untuk informasi selengkapnya, lihat Dokumen Pencarian (REST).

// Create properties for telemetry
var properties = new Dictionary<string, string>
{
    ["searchId"] = searchId,
    ["serviceName"] = "<PUT YOUR SEARCH SERVICE NAME HERE, example: contoso-search>",
    ["indexName"] = "<PUT YOUR INDEX NAME HERE>",
    ["searchText"] = searchText,
    ["resultsCount"] = searchResults.TotalCount?.ToString()
};

Mengirim peristiwa kustom ke Application Insights

Tambahkan kustom bahkan ke tabel peristiwa kustom di Application Insights. Untuk informasi selengkapnya, lihat API Application Insights untuk peristiwa dan metrik kustom.

telemetryClient.TrackEvent("search", properties);
telemetryClient.Flush();

Langkah 3: Meninjau log

Gunakan salah satu pendekatan yang didukung oleh Application Insights untuk melihat peristiwa kustom.

Langkah berikutnya

Anda dapat menemukan informasi selengkapnya tentang Application Insights dan mengunjungi halaman harga untuk mempelajari selengkapnya tentang berbagai tingkat layanannya.

Pelajari selengkapnya tentang membuat laporan. Lihat Memulai Power BI Desktop untuk detailnya.