Aracılığıyla paylaş


Arama trafiği analizi için telemetri verilerini toplama

Arama trafiği analizi, Kullanıcı tarafından başlatılan tıklama olayları ve klavye girişleri gibi Azure AI Search uygulamanızla kullanıcı etkileşimleri hakkında telemetri toplamak için kullanılan bir desendir. Bu bilgileri kullanarak popüler arama terimleri, tıklama oranı ve sıfır sonuç veren sorgu girişleri dahil olmak üzere arama çözümünüzün verimliliğini belirleyebilirsiniz.

Bu düzen, kullanıcı verilerini toplamak için Application Insights'a (Azure İzleyici'nin bir özelliği) bağımlı olur. Bu makalede açıklandığı gibi istemci kodunuza izleme eklemeniz gerekir. Son olarak, verileri analiz etmek için bir raporlama mekanizmasına ihtiyacınız vardır. Power BI'ı öneririz, ancak Application Insights'a bağlanan herhangi bir görselleştirme aracını kullanabilirsiniz.

Not

Bu makalede açıklanan desen, istemcinize eklediğiniz kod tarafından oluşturulan gelişmiş senaryolara ve tıklama akışı verilerine yöneliktir. Buna karşılık hizmet günlüklerini ayarlamak, çeşitli ölçümler sağlamak ve portalda kod gerektirmeden yapmak kolaydır. Günlüğün etkinleştirilmesi tüm senaryolar için önerilir. Daha fazla bilgi için bkz . Günlük verilerini toplama ve analiz etme.

İlgili arama verilerini tanımlama

Arama trafiği analizi için yararlı ölçümlere sahip olmak için arama uygulamanızın kullanıcılarından bazı sinyalleri günlüğe kaydetmek gerekir. Bu sinyaller, kullanıcıların ilgilendiği ve ilgili olarak değerlendirdikleri içeriği belirtir. Arama trafiği analizi için bunlar şunlardır:

  • Kullanıcı tarafından oluşturulan arama olayları: Yalnızca bir kullanıcı tarafından başlatılan arama sorguları ilgi çekicidir. Modelleri doldurmak veya iç bilgileri almak için kullanılanlar gibi diğer arama istekleri önemli değildir. Sonuçlarınızda dengesizlik veya sapma olmaması için yalnızca kullanıcı tarafından başlatılan olayları izlemeyi unutmayın.

  • Kullanıcı tarafından oluşturulan tıklama olayları: Arama sonuçları sayfasında tıklama olayı genellikle belgenin belirli bir arama sorgusu için uygun bir sonuç olduğu anlamına gelir.

Arama ve tıklama olaylarını bağıntı kimliğiyle bağlayarak, uygulamanızın arama işlevinin ne kadar iyi performans sergilediği hakkında daha fazla bilgi edinebilirsiniz.

Arama trafiği analizi ekleme

Azure AI Arama hizmeti portal sayfasında, bu telemetri desenini takip eden bir bilgi sayfasına erişmek için Trafik Analizinde Ara sayfasını açın. Bu sayfadan bir Application Insights kaynağı seçebilir veya oluşturabilir, izleme anahtarını alabilir, çözümünüz için uyarlayabileceğiniz kod parçacıklarını kopyalayabilir ve desene yansıtılan şema üzerinde oluşturulmuş bir Power BI raporu indirebilirsiniz.

Application Insights'ı ayarlamaya yönelik portal komutunun ve sayfasının ekran görüntüsü.

1. Adım: Application Insights'ı ayarlama

Mevcut bir Application Insights kaynağını seçin veya henüz yoksa bir kaynak oluşturun .

Bazı Visual Studio proje türleri için çalışan bir kısayol aşağıdaki adımlarda yansıtılır.

Çizim için, bu adımlar Statik bir web uygulamasına arama ekle'den istemciyi kullanır.

  1. Çözümünüzü Visual Studio’da açın.

  2. Proje menüsünde Bağlı hizmetler>Ekle> Azure Uygulaması lication Insights'ı seçin.

  3. Bağımlılık bağlantısı bölümünde Azure Uygulaması Lication Insights'ı ve ardından İleri'yi seçin.

  4. Azure aboneliğinizi, Application Insights kaynağınızı ve ardından Son'u seçin.

Bu noktada, uygulamanız uygulama izleme için ayarlanır ve bu da istemci uygulamanızdaki tüm sayfa yüklemelerinin varsayılan ölçümlerle izleneceği anlamına gelir.

Bu kısayol sizin için işe yaramadıysa bkz . Application Insights sunucu tarafı telemetrisini etkinleştirme.

2. Adım: İzleme ekleme

İstemci uygulamanıza izleme kodu ekleyin. Azure portalındaki Trafik Analizinde Arama sayfası, uygulama kodunuz içine yapıştırabileceğiniz kod parçacıkları sağlar.

Telemetri istemcisi oluşturma

Application Insights'a olay gönderen bir nesne oluşturun. Burada C# ve JavaScript varyantları olarak ifade edilen sunucu tarafı uygulama kodunuza veya tarayıcıda çalışan istemci tarafı kodunuza izleme ekleyebilirsiniz. Diğer diller için bkz . desteklenen platformlar ve çerçeveler.

Sunucu tarafı telemetrisi, azure'da web hizmeti olarak veya şirket ağı üzerinde şirket içi uygulama olarak çalışan uygulamalar gibi uygulama katmanındaki ölçümleri yakalar. Sunucu tarafı telemetrisi arama ve tıklama olaylarını, bir belgenin sonuçlardaki konumunu ve sorgu bilgilerini yakalar, ancak veri toplamanızın kapsamı bu katmanda sağlanan bilgilerle kaplanır.

İstemcide sorgu girişlerini işleyen, gezinti ekleyen veya bağlam (örneğin, giriş sayfasından başlatılan sorgular ve ürün sayfası) içeren başka kodunuz olabilir. Bu, çözümünüzü açıklıyorsa, telemetrinizin ek ayrıntıları yansıtması için istemci tarafı izlemesini tercih edebilirsiniz. Bu ek ayrıntının nasıl toplandığı bu düzenin kapsamının ötesine geçer, ancak bu kararla ilgili yardım için web sayfaları için Application Insights'ı gözden geçirebilirsiniz.

İzleme anahtarını Azure portalından Application Insights sayfalarından veya Azure AI Search trafik analizi sayfasından alabilirsiniz.

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

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

Bağıntı için Arama Kimliği isteme

Önemli

Azure portalında, istek üst bilgileri için kod parçacıkları Azure SDK'nın eski bir sürümü kullanılarak yapılır. Güncelleştirmeler beklemede.

Arama isteklerini tıklamalarla ilişkilendirmek için, bu iki ayrı olayı ilişkilendiren bir bağıntı kimliğine sahip olmak gerekir. Azure AI Search, http üst bilgisi istediğinizde size bir arama kimliği sağlar.

Arama kimliğine sahip olmak, Isteğin kendisi için Azure AI Search tarafından yayılan ölçümlerin Application Insights'ta günlüğe kaydettiğiniz özel ölçümlerle ilişkilendirilmesine olanak tanır.

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

Günlük arama olayları

Bir kullanıcı tarafından her arama isteği verildiğinde, bunu bir Application Insights özel olayında aşağıdaki şemayla bir arama olayı olarak günlüğe kaydetmeniz gerekir. Yalnızca kullanıcı tarafından oluşturulan arama sorgularını günlüğe kaydetmeyi unutmayın.

  • SearchServiceName: (dize) arama hizmeti adı
  • SearchId: (guid) arama sorgusunun benzersiz tanımlayıcısı (arama yanıtında gelir)
  • IndexName: (dize) sorgulanacak arama hizmeti dizini
  • QueryTerms: (dize) kullanıcı tarafından girilen arama terimleri
  • ResultCount: (int) döndürülen belge sayısı (arama yanıtında gelir)
  • ScoringProfile: (dize) varsa kullanılan puanlama profilinin adı

Not

Arama sorgunuza $count=true ekleyerek kullanıcı tarafından oluşturulan sorguların sayısını isteyin. Daha fazla bilgi için bkz . Belge Arama (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);

Günlük tıklama olayları

Bir kullanıcı bir belgeye her tıklayışında bu, arama analizi amacıyla günlüğe kaydedilmesi gereken bir sinyaldir. Bu olayları aşağıdaki şemayla günlüğe kaydetmek için Application Insights özel olaylarını kullanın:

  • ServiceName: (dize) arama hizmeti adı
  • SearchId: (guid) ilgili arama sorgusunun benzersiz tanımlayıcısı
  • DocId: (dize) belge tanımlayıcısı
  • Konum: Arama sonuçları sayfasındaki belgenin (int) sırası

Not

Konum, uygulamanızdaki kardinal sırasına başvurur. Karşılaştırma için her zaman aynı olduğu sürece bu sayıyı ayarlayabilirsiniz.

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

3. Adım: Power BI'da analiz etme

Uygulamanızı denetledikten ve uygulamanızın Application Insights'a doğru şekilde bağlı olduğunu doğruladıktan sonra, Power BI desktop'taki verileri analiz etmek için önceden tanımlanmış bir rapor şablonu indirirsiniz. Rapor, arama trafiği analizi için yakalanan ek verileri analiz etmek için yararlı olan önceden tanımlanmış grafikler ve tablolar içerir.

  1. Arama hizmeti sayfalarındaki Azure portalında, Ayarlar'ın altında Trafik analizinde ara'yı seçin.

  2. Power BI'ı yüklemek için Power BI Desktop'ı edinin'i seçin.

  3. Raporu almak için Power BI raporunu indir'i seçin.

  4. Rapor Power BI Desktop'ta açılır ve Application Insights'a bağlanıp kimlik bilgilerini sağlamanız istenir. Application Insights kaynağınızın Azure portal sayfalarında bağlantı bilgilerini bulabilirsiniz. Kimlik bilgileri için, portal oturumu açmak için kullandığınız kullanıcı adı ve parolayı belirtin.

    Power BI'dan Application Insights'a bağlanmayı gösteren ekran görüntüsü.

  5. Yükle'yi seçin.

Rapor, arama performansınızı ve ilginizi artırmak için daha bilinçli kararlar vermenizi sağlayan grafikler ve tablolar içerir.

Ölçümler aşağıdaki öğeleri içerir:

  • Arama hacmi ve en popüler terim-belge çiftleri: aynı belgeye tıklanarak, tıklanarak sıralanmış olarak sonuçlanan terimler.
  • Tıklama olmadan aramalar: tıklama kaydetmeden en çok kullanılan sorgular için terimler

Aşağıdaki ekran görüntüsünde raporunuzun içerebileceği veri öğeleri gösterilmektedir.

Veri kataloğundaki kullanılabilir şema öğelerini gösteren ekran görüntüsü.

Sonraki adımlar

Arama hizmetiniz hakkında güçlü ve içgörüler elde etmek için arama uygulamanızı izleme.

Application Insights hakkında daha fazla bilgi bulabilir ve farklı hizmet katmanları hakkında daha fazla bilgi edinmek için fiyatlandırma sayfasını ziyaret edebilirsiniz.

Rapor oluşturma hakkında daha fazla bilgi edinin. Ayrıntılar için bkz . Power BI Desktop'ı kullanmaya başlama.