如何生成 SharePoint 搜尋統計資訊?
我們有一個高度定制的 SharePoint 發布 (WCM) 網站,它不使用任何 Web 元件,以滿足 XHTML 和 (AA) 可訪問性準則。問題是搜尋功能沒有生成任何使用統計資訊(SSP 中搜尋管理中的使用報告)。我們知道這取決於我們的定制,因為我們在場中有幾個 OOTB 團隊站點,它們正在生成搜尋統計資訊。我們不確定我們需要在哪裡/如何解決這個問題。看來我們可能需要連接到 search.asmx Web 服務的呼叫,但我不確定。也許我們需要從 SharePoint API 中呼叫某些內容作為我們對搜尋服務的呼叫的一部分?我不知道。
有沒有人建立了一個高度定制的 SharePoint 網站(沒有 Web 元件)並記錄搜尋統計資訊,你能評論一下你是如何做到的嗎?或者任何人都可以提供有關如何生成統計數據的見解?
如果有幫助,我們正在執行一個具有 2 個 WFE、1 個索引伺服器和 1 個 SQL Server 框的中型場。所有 Windows 2003 R2 SP2,32 位。MOSS 2007 SP1(加上 12 月 CU)企業版。
謝謝,詹姆斯。
PS 這個問題之前在 Stack Overflow ( https://stackoverflow.com/questions/1432182/how-do-sharepoint-search-statistics-get-generated ) 上被問過,但一些評論者建議將其移至此處。
這可能不是您想听到的答案,但我們的解決方法是將搜尋控制項 webpart(我認為只需要 searchboxex)放在隱藏的內容佔位符之一(在我們的例子中為 ContentPlaceHolderId = PlaceHolderSearchArea)
根據我目前收集到的資訊,查詢是通過呼叫搜尋 Web 服務的 RecordClick 方法來記錄的。用於呈現搜尋結果的 Microsoft.Office.Server.Search.WebControls.SearchResultsBaseWebPart Webpart 使奇蹟發生。
載入 SearchResultsBaseWebPart 呈現的頁面時,會為 ID 與 RegExp 過濾器匹配的所有 HTML 連結元素的 onlick 事件註冊一個函式。頁面的解除安裝事件也被註冊以向搜尋 Web 服務 RecordClick 方法發送包含序列化 Microsoft.Office.Server.Search.Query.QueryInfo 對象的soap請求。QueryInfo 對象的屬性隨後儲存在共享服務提供者數據庫的 MSSQLogUnprocessed 和 MSSQLogNonClickedUnprocessed 表中。
這是迄今為止我發現的唯一查詢日誌記錄功能。如果您知道或找到任何其他線索,請分享。
我通過查看 Reflector 中的不同類來收集這些資訊。我希望它有所幫助。