共用方式為


收集搜尋流量分析的遙測資料

搜尋流量分析是一種模式,用於收集有關使用者與 Azure AI 搜尋服務應用程式互動的遙測資料,例如使用者起始的 Click 事件和鍵盤輸入。 您可以使用此資訊來判斷搜尋解決方案的有效性,包括熱門搜尋字詞、點選連結率,以及哪些查詢輸入未產生任何結果。

此模式會相依於 Application Insights (Azure 監視器的一個功能),以收集使用者資料。 您必須如此文章所述,在用戶端程式碼中加入檢測設備。 最後,您需要報告機制來分析數據。 我們建議使用 Power BI,但您可以使用應用程式儀表板,或任何連線至 Application Insights 的工具。

注意

此文章中描述的模式適用於您新增至用戶端的程式碼所產生的進階案例和點選流資料。 服務記錄相對容易設定,而且可提供一系列的計量,還可以在入口網站中完成,不需要撰寫程式碼。 因此無論是什麼情況,都建議啟用記錄。 如需詳細資訊,請參閱收集和分析記錄資料

識別相關的搜尋資料

若要讓搜尋流量分析產生有用的計量,必須針對搜尋應用程式的使用者記錄一些訊號。 這些訊號代表使用者感興趣且認為與其相關的內容。 針對搜尋流量分析,這些訊號包括:

  • 使用者產生的搜尋事件:只有使用者起始的搜尋查詢才有意義。 其他搜尋要求,例如用來填入 Facet 或擷取內部資訊的搜尋要求並不重要。 請務必只檢測使用者啟動的事件,避免結果產生扭曲或偏差。

  • 使用者產生的 Click 事件:在搜尋結果頁面上,Click 事件通常表示文件為特定搜尋查詢的相關結果。

藉由連結搜尋和按兩下具有相互關聯標識碼的事件,您可以更深入地瞭解應用程式的搜尋功能執行程度。

新增搜尋流量分析

在 Azure AI 搜尋服務的入口網站頁面中,開啟 [搜尋流量分析] 頁面,存取遵循此遙測模式的速查表。 您可以從這個頁面,選取或建立 Application Insights 資源、取得檢測金鑰、複製可針對解決方案調整的程式碼片段,以及下載依據模式中反映的結構描述所建置的 Power BI 報表。

用於設定 Application Insights 的入口網站命令和頁面螢幕快照。

步驟 1:設定 Application Insights

請選取現有的 Application Insights 資源,或者如果您還沒有該個資源,請建立一個

後續步驟中會反映出某些 Visual Studio 專案類型可使用的快捷方式。

例如,這些步驟會使用從 [將搜尋新增至靜態 Web 應用程式] 的用戶端。

  1. 在 Visual Studio 中開啟您的方案。

  2. 在 [專案] 功能表上,選取 連線 服務>[新增> Azure 應用程式 深入解析]。

  3. 在 [連線 至相依性] 中,選取 [Azure 應用程式 Insights],然後選取 [下一步]。

  4. 選取您的 Azure 訂用帳戶、Application Insights 資源,然後選取 [ 完成]。

此時,您的應用程式會設定為應用程式監視,這表示用戶端應用程式中的所有頁面載入都會使用預設計量進行追蹤。

如果此快捷方式無法為您運作,請參閱 啟用 Application Insights 伺服器端遙測

步驟 2:新增檢測

將檢測程式代碼新增至用戶端應用程式。 Azure 入口網站 中的 [搜尋使用分析] 頁面提供代碼段,您可以貼到應用程式程式代碼中。

建立遙測用戶端

建立會將事件傳送至 Application Insights 的物件。 您可以將檢測新增至在瀏覽器中執行的伺服器端應用程式程式代碼或用戶端程式代碼,這裡以 C# 和 JavaScript 變體表示。 如需其他語言,請參閱 支援的平台和架構

伺服器端遙測會在應用層擷取計量,例如在 Azure 上以 Web 服務執行的應用程式,或作為公司網路上的內部部署應用程式。 伺服器端遙測會擷取搜尋和按一下事件、文件在結果中的位置,以及查詢資訊,但您的資料收集範圍將會限定在該層所提供的任何資訊。

在用戶端上,您可能會有其他程式碼可操作查詢輸入、新增流覽或包含內容(例如,從首頁起始的查詢與產品頁面)。 如果這描述您的解決方案,您可能會選擇客戶端檢測,讓您的遙測反映額外的詳細數據。 收集此額外詳細數據的方式超出此模式的範圍,但您可以檢閱 Application Insights 網頁 以取得該決策的說明。

您可以在 Application Insights 的頁面或 Azure AI 搜尋的搜尋使用分析頁面中,從 Azure 入口網站 取得檢測密鑰。

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

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

要求搜尋標識碼以取得相互關聯

重要

在 Azure 入口網站 中,要求標頭的代碼段是使用過時的 Azure SDK 版本進行。 更新 擱置中。

若要透過點選將搜尋要求相互關聯,必須擁有一組與這兩個不同事件相關的相互關聯識別碼。 當您使用 HTTP 標頭要求取得搜尋識別碼時,Azure AI 搜尋服務會提供您一組搜尋識別碼。

擁有搜尋標識碼可讓 Azure AI 搜尋服務針對要求本身發出的計量相互關聯,以及您要在 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();
} 

記錄搜尋事件

每當使用者發出搜尋要求時,您應該將其記錄為搜尋事件,並包含下列關於 Application Insights 自訂事件的結構描述。 請記得只記錄使用者產生的搜尋查詢。

  • SearchServiceName:(字串) 搜尋服務名稱
  • SearchId:(guid) 搜尋查詢的唯一識別碼 (出現在搜尋回應中)
  • IndexName:(字串) 要查詢的搜尋服務索引
  • QueryTerms:(字串) 使用者輸入的搜尋字詞
  • ResultCount:(int) 傳回文件的數目 (出現在搜尋回應中)
  • ScoringProfile:(字串) 所使用評分設定檔的名稱 (如果有的話)

注意

請將 $count=true 新增至搜尋查詢,以要求使用者所產生查詢的計數。 如需詳細資訊,請參閱搜尋文件 (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);

記錄點選事件

每當使用者點選文件時,必須記錄這個訊號才可進行搜尋分析。 使用 Application Insights 自訂事件,記錄包含下列結構描述的這些事件:

  • ServiceName:(字串) 搜尋服務名稱
  • SearchId:(guid) 相關搜尋查詢的唯一識別碼
  • DocId:(字串) 文件識別碼
  • Position:(int) 搜尋結果頁面中文件的順位

注意

位置是指您應用程式中的基本順序。 您可以自由地設定這個數字 (只要它一律相同) 以便進行比較。

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:在 Power BI 中進行分析

在您完成您的應用程式檢測,並確認應用程式已正確地連線至 Application Insights 之後,可以下載預先定義的報表範本來分析 Power BI Desktop 中的資料。 此報表包含預先定義的圖表和數據表,可用於分析針對搜尋使用分析擷取的額外數據。

  1. 在搜尋服務頁面上 Azure 入口網站 的 [設定] 下,選取 [搜尋使用分析]。

  2. 選取 [取得 Power BI Desktop ] 以安裝 Power BI。

  3. 選取 [ 下載 Power BI 報表 ] 以取得報表。

  4. 報表會在 Power BI Desktop 中開啟,系統會提示您連線到 Application Insights 並提供認證。 您可以在 Azure 入口網站頁面中,找到您 Application Insights 資源的連線資訊。 針對認證,請提供您用來登入入口網站的相同使用者名稱與密碼。

    顯示如何從Power BI連線到 Application Insights 的螢幕快照。

  5. 選取載入

此報表包含圖表和資料表,可幫助您做出更明智的決策,以改善您的搜尋效能和相關性。

計量包含下列項目:

  • 搜尋磁碟區和最熱門的字詞文件組︰依點選排序,造成點選相同文件的字詞。
  • 無點選搜尋︰註冊無點選的熱門查詢詞彙

下列螢幕擷取畫面顯示當您使用了所有的結構描述元素時,內建報表的外觀。

顯示使用所有可用架構元素之內建報表的螢幕快照。

下一步

檢測您的搜尋應用程式,取得搜尋服務的強大且詳細相關資料。

您可以在 Application Insights 上找到詳細資訊,以及瀏覽價格頁面頁面來深入了解其不同的服務層級。

深入瞭解如何建立報表。 如需詳細資訊,請參閱開始使用 Power BI Desktop