變更內容搜尋網頁組件顯示範本,並使用 Windows PowerShell 在 SharePoint Server 中開始進行使用情況分析
適用于:2013 2019 訂閱版本 Microsoft 365 中的 SharePoint
注意事項
本系列中的範例是根據內部部署的 SharePoint Server 部署。
變更 UsageAnalyticsID Managed 屬性的對應
在 Contoso 網站中,我們想要為每個產品群組建議一個產品,也就是我們想要流量分析 忽略產品色彩。 這表示我們的建議必須根據 群組編號來計算。 我們可以這麼做,因為 群組編號 是專案詳細資料頁面上易記 URL (FURL) 的一部分, (請參閱 SharePoint Server) 中目錄專案頁面上的內容搜尋網頁元件中的查詢 。
在上一篇部落格文章中,我們告訴您用來指定應如何計算個別目錄專案之間建議的 Managed 屬性是 UsageAnalyticsID (請參閱 關於 UsageAnalyticsID Managed 屬性) 。 若要讓流量分析在 群組編號上進行計算,我們必須變更 UsageAnalyticsID 屬性的對應。 Here's how you do that:
重要事項
您必須在製作網站上變更屬性對應。
在製作網站上,移至 [網站設定] --> [搜尋結構描述]。
在 [ Managed 屬性] 頁面的 [ Managed 屬性 ] 欄位中,輸入 UsageAnalyticsID,然後選取箭號按鈕。
從 [屬性名稱] 欄位中,選取 [編輯/對應屬性]。
On the Edit Managed Property page, select Add a Mapping. 請注意,根據預設,此屬性會對應至編目屬性 ows_ProductCatalogItemNumber。
在 [ 編目屬性選取 範圍] 對話方塊中,使用 [ 搜尋編目屬性名稱 ] 欄位來搜尋您要對應至此 Managed 屬性的編目屬性。
在我們的 Contoso 案例中,我們想要對應名為 群組編號的網站資料行。 編目屬性不含空格。 因此,請排除空間,輸入 GroupNumber ,然後選取 [尋找]。
Two crawled properties are found. 選取具有 ows_前置詞的編目屬性,然後選取 [ 確定]。
如果您因為找到兩個看起來相同的編目屬性而混淆,您並不單獨。 這有點棘手。 從網站資料行到 Managed 屬性 - 該怎麼辦? 一文說明編目和 Managed 屬性的命名慣例。 如果您對縮寫版本感興趣,如下所示:將編目屬性對應至 UsageAnalyticsID Managed 屬性時,您應該選取具有ows_前置詞 的 編目屬性!
在 [ 編輯 Managed 屬性] 頁面上,選 取 [ows_ProductCatalogItemNumber 編目] 屬性,然後選 取 [移除對應]。
請選取 [確定] 以儲存新的對應。
重要事項
只將 一個編目屬性 對應至 UsageAnalyticsID Managed 屬性。 If you map more than one crawled property, the Usage analytics calculation won't work correctly.
變更 UsageAnalyticsID Managed 屬性的對應之後,請執行目錄的完整編目,如 第 4 階段:在 SharePoint Server 中設定搜尋並啟用類別目錄內容的編目中所述。
變更內容搜尋網頁組件顯示範本,以便正確記錄使用事件
在 Contoso 網站上,我們使用內容搜尋網頁組件 (CSWP),在目錄項目頁面上顯示項目,如階段 10: 設定內容搜尋網頁組件的 SharePoint Server 中的目錄項目頁面上的查詢中所述。 根據預設,CSWP 不會記錄使用事件。 若要讓 CSWP 能夠記錄使用事件,我們必須變更 CSWP 所使用的顯示範本。 以下是您必須執行的作業:
在如何將對應網路磁碟機中,開啟您已套用到 CSWP 的顯示範本。
在 ManagedPropertyMapping 元素中,新增下列兩個屬性:
'Original Path'{Original Path}:'OriginalPath', 'SiteID'{SiteID}:'SiteID',
在顯示範本的 HTML 部分正上方新增下列 JavaScript:
//Log Views usage event on URL of catalog item window.LogViewsToEventStore = function(url, site) { SP.SOD.executeFunc("sp.js", "SP.ClientContext", function() { var spClientContext = SP.ClientContext.get_current(); if(!$isNull(spClientContext)) { var spWeb = spClientContext.get_web(); var spUser = spWeb.get_currentUser(); var spScope = "{00000000-0000-0000-0000-000000000000}"; SP.Analytics.AnalyticsUsageEntry.logAnalyticsEvent2(spClientContext, 1, url, spScope, site, spUser);spClientContext.executeQueryAsync(null, null); } }); }; var originalPath = $getItemValue(ctx, "Original Path"); var originalSite = $getItemValue(ctx, "SiteID"); LogViewsToEventStore(originalPath.value, originalSite.value);
In View the usage event definitions we explained the EventTypeIDs for the usage events. 此腳本中的值1代表Views使用事件的EventTypeID。 若要記錄不同的使用事件,請將此值取代為您想要記錄之使用事件的 EventTypeID 。
儲存檔案。
您為何應該模擬 Views 使用事件的產生
Now that our CSWP can correctly log usage events, the next step is to actually generate usage events. 在我們的案例中,我們已將 CSWP 變更為記錄 檢視。 如果 Contoso 網站在生產環境中,訪客每次檢 視 網站上的專案時,都會建立 Views 使用事件。 But, the Contoso site is only a demo site. Therefore, it doesn't have any visitors.
當您設定您的網站時,您很可能會先測試「使用情況分析」功能,再將該網站置於生產環境。 若要測試「使用情況分析」功能,您必須產生使用事件。 若要根據使用事件產生建議, 至少三個使用者必須按一下相同的專案。
沒有單一正確的方式可以模擬檢 視 使用事件的產生。 若要產生 Contoso 網站的檢 視 使用事件,您可能想要邀請同事參加「按一下派對」。若要確定已產生建議,請為每個使用者提供要按一下的專案清單。 如此一來,您就可以確定至少有三個使用者按一下相同的專案。
以下是您可以提供給同事的指示範例:
執行使用方式分析時, SV 鍵盤 E10 會為 WWI Desktop PC2.30 M2300 (檢視 WWI Desktop PC2.30 M2300 的人員產生建議,這些人員也已檢視 SV 鍵盤 E10) 和 WWI Desktop PC2.30 M2300 會產生 SV 鍵盤 E10 的建議, (檢視 SV 鍵盤 E10 的人員也已檢視 WWI Desktop PC2.30 M2300) 。
執行 Microsoft PowerShell 指令碼,開始搜尋分析並將使用事件推送到事件存放區
產生 檢視 使用事件之後,您有兩個選項可繼續。 使用方式分析計時器工作每 24 小時執行一次。
如果您想要更快速的結果,您可以使用一些 Microsoft PowerShell 腳本來加速程式。 以下是您必須執行的作業:
確認您符合最低權限需求:
在安裝 SharePoint Server 的伺服器上,以系統管理員身分開啟 SharePoint 2013 管理命令介面 。
在 Microsoft PowerShell 命令提示字元處輸入下列命令,開始進行搜尋分析。 使用情況分析會使用搜尋分析的輸出,對應使用事件與搜尋索引中的實際項目。
$job = Get-SPTimerJob -Type Microsoft.Office.Server.Search.Analytics.AnalyticsJobDefinition $sa = $job.GetAnalysis("Microsoft.Office.Server.Search.Analytics.SearchAnalyticsJob") $sa.StartAnalysis()
請等候搜尋分析作業完成。 若要檢查搜尋分析作業的狀態,請輸入下列命令:
$sa.GetAnalysisInfo()
只要搜尋分析作業正在執行, State 就是 Running 。
當 State 為 Stopped 且 Progress 為 100 時,搜尋分析作業便已完成。
使用事件會以 10 分鐘間隔新增至事件存放區。 若要將使用事件推送到存放區,請輸入下列命令:
$job = Get-SPTimerJob -Identity ("job-usage-log-file-import") $job.RunNow()
檢視事件存放區中的使用事件
將使用事件推送到事件存放區之後,您必須確認已正確記錄使用事件。 若要這麼做,請在安裝 SharePoint Server 的電腦上,移至事件存放區。 在大多數情況下,您可以在下列資料夾中找到事件存放區:
C:\Program Files\Microsoft Office Servers\15.0\Data\Office Server\Analytics_<GUID>\EventStore
在事件存放區中,每天的使用事件會儲存在個別的資料夾中。 在我們的案例中,我們可看到已新增一個資料夾。
在這個資料夾中,您會看到一些文字檔案。 這些檔案包含我們的使用事件。 請注意,所有檔案名稱都是以 1_ 開頭。
此數位是檔案中記錄之使用事件的 EventTypeID 。 請記住,1是Views使用事件的EventTypeID (請參閱檢視使用狀況事件定義) 。 此時,我們要記錄的唯一使用事件是 Views 事件。 So this is a good sign that we are doing things right.
在文字編輯器中開啟其中一個檔案。 此檔案包含大量資訊,但您真的只要查看兩件事:
確認已正確記錄使用事件。
確認不同的使用者已產生此使用事件。
在關於流量分析中的跨網站發佈案例中,我們已說明為了讓使用情況分析得以運作,則必須將使用事件記錄在項目的 URL 中。 在事件存放區檔案中,您會看到許多 URL。 尋找結尾為 dispform.aspx?id= 且後面接著數位的 URL。 在這個檔案的 Contoso 版本中,我們看到有許多具有這類 URL 的項目。
這表示已正確記錄使用事件。 若要確認 URL 實際屬於我們的其中一項目錄項目,請從此檔案複製其中一個 URL 並將它貼到瀏覽器中。
若要確認不同的使用者已產生此使用事件,請查看檔案的第三欄。 在我們的案例中,我們可以看到我們至少有三個使用者識別碼。
既然我們已確認使用事件正確記錄,您可能會認為我們已準備好執行使用情況分析作業。 但請記住,藉由使用 Microsoft PowerShell 來啟動使用方式分析,我們實際上是在開始計時器工作。
使用情況分析計時器作業開始時,它會取得昨天的使用事件進行處理。 因為我們想要處理今天的檔案,所以我們將使用一個簡單的手法,讓使用情況分析得以處理正確的檔案。
在您使用 Windows PowerShell 開始進行使用情況分析前準備使用事件檔案
在 EventStore 資料夾中,建立名為 myevents 的檔夾。
將您想要使用方式分析處理的使用事件檔案複製到 myevents 資料夾中。 在我們的 Contoso 案例中,將 [事件存放區] 資料夾 中 [檢視使用量事件 ] 中的所有檔案複製到 myevents。
以滑鼠右鍵按一下 myevents 資料夾,然後選取 [ 屬性]。
在 [屬性] 區段中,選取 [唯讀 (僅適用於資料夾中的檔案)],然後按一下 [確定]。
在 [ 確認屬性變更 ] 對話方塊中,選取 [ 將變更套用至此資料夾、子資料夾和檔案], 然後按一下 [ 確定]。
您現在已準備好開始進行使用情況分析作業。
使用 Microsoft PowerShell 開始進行使用情況分析作業
在 Microsoft PowerShell 命令提示字元處,輸入下列命令:
$job = get-sptimerjob -type microsoft.office.server.search.analytics.usageanalyticsjobdefinition $job.DisableTimerJobSchedule() $job.StartAnalysis("\\<hostname>\Analytics_<guid>\EventStore\myevents") $job.EnableTimerJobSchedule()
請注意,一個命令包含兩個預留位置: 主機名稱 和 guid。 The host name is the name of the server where SharePoint Server is installed. 您可以在 EventStore 的檔案路徑中看到 GUID。
輸入下列命令,以檢查使用情況分析作業的狀態:
$job.GetAnalysisInfo()
當 State 為 Stopped 且 Progress 為 100 時,使用情況分析作業便已完成。
既然使用情況分析已處理使用事件,下一個步驟就是在我們的發佈網站上顯示分析結果。 為了這麼做,我們將新增並設定兩個網頁組件。
本系列中的下一篇文章
Add and configure the Recommended Items and Popular Items Web Part in SharePoint Server