變更內容搜尋網頁組件顯示範本,並使用 Windows PowerShell 在 SharePoint Server 中開始進行使用情況分析

適用于:yes-img-132013 yes-img-16 2016yes-img-192019 yes-img-se訂閱版本 no-img-sopMicrosoft 365 中的 SharePoint

注意事項

本系列中的範例是根據內部部署的 SharePoint Server 部署。

變更 UsageAnalyticsID Managed 屬性的對應

在 Contoso 網站中,我們想要為每個產品群組建議一個產品,也就是我們想要流量分析 忽略產品色彩。 這表示我們的建議必須根據 群組編號來計算。 我們可以這麼做,因為 群組編號 是專案詳細資料頁面上易記 URL (FURL) 的一部分, (請參閱 SharePoint Server) 中目錄專案頁面上的內容搜尋網頁元件中的查詢

在上一篇部落格文章中,我們告訴您用來指定應如何計算個別目錄專案之間建議的 Managed 屬性是 UsageAnalyticsID (請參閱 關於 UsageAnalyticsID Managed 屬性) 。 若要讓流量分析在 群組編號上進行計算,我們必須變更 UsageAnalyticsID 屬性的對應。 Here's how you do that:

重要事項

您必須在製作網站上變更屬性對應。

  1. 在製作網站上,移至 [網站設定] --> [搜尋結構描述]

    搜尋結構描述

  2. 在 [ Managed 屬性] 頁面的 [ Managed 屬性 ] 欄位中,輸入 UsageAnalyticsID,然後選取箭號按鈕。

    搜尋流量分析 MP

  3. 從 [屬性名稱] 欄位中,選取 [編輯/對應屬性]

    編輯屬性

  4. On the Edit Managed Property page, select Add a Mapping. 請注意,根據預設,此屬性會對應至編目屬性 ows_ProductCatalogItemNumber

    新增 A 對應

  5. 在 [ 編目屬性選取 範圍] 對話方塊中,使用 [ 搜尋編目屬性名稱 ] 欄位來搜尋您要對應至此 Managed 屬性的編目屬性。

    在我們的 Contoso 案例中,我們想要對應名為 群組編號的網站資料行。 編目屬性不含空格。 因此,請排除空間,輸入 GroupNumber ,然後選取 [尋找]

    輸入群組號碼並選取 [尋找]

    Two crawled properties are found. 選取具有 ows_前置詞的編目屬性,然後選取 [ 確定]

    對應屬性

    如果您因為找到兩個看起來相同的編目屬性而混淆,您並不單獨。 這有點棘手。 從網站資料行到 Managed 屬性 - 該怎麼辦? 一文說明編目和 Managed 屬性的命名慣例。 如果您對縮寫版本感興趣,如下所示:將編目屬性對應至 UsageAnalyticsID Managed 屬性時,您應該選取具有ows_前置詞 編目屬性!

  6. 在 [ 編輯 Managed 屬性] 頁面上,選 取 [ows_ProductCatalogItemNumber 編目] 屬性,然後選 取 [移除對應]

    移除對應

  7. 請選取 [確定] 以儲存新的對應。

    重要事項

    只將 一個編目屬性 對應至 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 所使用的顯示範本。 以下是您必須執行的作業:

  1. 如何將對應網路磁碟機中,開啟您已套用到 CSWP 的顯示範本。

  2. ManagedPropertyMapping 元素中,新增下列兩個屬性:

    'Original Path'{Original Path}:'OriginalPath',
    'SiteID'{SiteID}:'SiteID',
    

    兩個 MP

  3. 在顯示範本的 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

    JavaScript

  4. 儲存檔案。

您為何應該模擬 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 腳本來加速程式。 以下是您必須執行的作業:

  1. 確認您符合最低權限需求:

  2. 在安裝 SharePoint Server 的伺服器上,以系統管理員身分開啟 SharePoint 2013 管理命令介面

    以系統管理員身分執行

  3. 在 Microsoft PowerShell 命令提示字元處輸入下列命令,開始進行搜尋分析。 使用情況分析會使用搜尋分析的輸出,對應使用事件與搜尋索引中的實際項目。

    $job = Get-SPTimerJob -Type Microsoft.Office.Server.Search.Analytics.AnalyticsJobDefinition
    $sa = $job.GetAnalysis("Microsoft.Office.Server.Search.Analytics.SearchAnalyticsJob")
    $sa.StartAnalysis()
    
  4. 請等候搜尋分析作業完成。 若要檢查搜尋分析作業的狀態,請輸入下列命令:

    $sa.GetAnalysisInfo()
    

    只要搜尋分析作業正在執行, State 就是 Running

    SA 執行中

    StateStoppedProgress100 時,搜尋分析作業便已完成。

    已停止 SA

  5. 使用事件會以 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 。 請記住,1Views使用事件的EventTypeID (請參閱檢視使用狀況事件定義) 。 此時,我們要記錄的唯一使用事件是 Views 事件。 So this is a good sign that we are doing things right.

在文字編輯器中開啟其中一個檔案。 此檔案包含大量資訊,但您真的只要查看兩件事:

  • 確認已正確記錄使用事件。

  • 確認不同的使用者已產生此使用事件。

關於流量分析中的跨網站發佈案例中,我們已說明為了讓使用情況分析得以運作,則必須將使用事件記錄在項目的 URL 中。 在事件存放區檔案中,您會看到許多 URL。 尋找結尾為 dispform.aspx?id= 且後面接著數位的 URL。 在這個檔案的 Contoso 版本中,我們看到有許多具有這類 URL 的項目。

項目 URL

這表示已正確記錄使用事件。 若要確認 URL 實際屬於我們的其中一項目錄項目,請從此檔案複製其中一個 URL 並將它貼到瀏覽器中。

驗證項目 URL

若要確認不同的使用者已產生此使用事件,請查看檔案的第三欄。 在我們的案例中,我們可以看到我們至少有三個使用者識別碼。

三個使用者 ID

既然我們已確認使用事件正確記錄,您可能會認為我們已準備好執行使用情況分析作業。 但請記住,藉由使用 Microsoft PowerShell 來啟動使用方式分析,我們實際上是在開始計時器工作。

使用情況分析計時器作業開始時,它會取得昨天的使用事件進行處理。 因為我們想要處理今天的檔案,所以我們將使用一個簡單的手法,讓使用情況分析得以處理正確的檔案。

在您使用 Windows PowerShell 開始進行使用情況分析前準備使用事件檔案

  1. 在 EventStore 資料夾中,建立名為 myevents 的檔夾。

    我的事件

  2. 將您想要使用方式分析處理的使用事件檔案複製到 myevents 資料夾中。 在我們的 Contoso 案例中,將 [事件存放區] 資料夾 中 [檢視使用量事件 ] 中的所有檔案複製到 myevents

    已複製我的事件

  3. 以滑鼠右鍵按一下 myevents 資料夾,然後選取 [ 屬性]

    Windows 檔案總管中的內容位置

  4. 在 [屬性] 區段中,選取 [唯讀 (僅適用於資料夾中的檔案)],然後按一下 [確定]

    設定為唯讀

  5. 在 [ 確認屬性變更 ] 對話方塊中,選取 [ 將變更套用至此資料夾、子資料夾和檔案], 然後按一下 [ 確定]

    套用至資料夾

    您現在已準備好開始進行使用情況分析作業。

使用 Microsoft PowerShell 開始進行使用情況分析作業

  1. 在 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。

    Guid

    執行 UA

  2. 輸入下列命令,以檢查使用情況分析作業的狀態:

    $job.GetAnalysisInfo()
    

    StateStoppedProgress100 時,使用情況分析作業便已完成。

    已停止 UA

既然使用情況分析已處理使用事件,下一個步驟就是在我們的發佈網站上顯示分析結果。 為了這麼做,我們將新增並設定兩個網頁組件。

本系列中的下一篇文章

Add and configure the Recommended Items and Popular Items Web Part in SharePoint Server