我们有一个高度定制的 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) 但一些评论者建议应将其移到这里。
答案1
这可能不是您想听到的答案,但我们的解决方法是将搜索控制 Web 部件(我认为只需要 searchboxex)放置在隐藏内容占位符之一中(在我们的例子中,ContentPlaceHolderId = PlaceHolderSearchArea)
答案2
据我目前所知,查询是通过调用搜索 Web 服务的 RecordClick 方法来记录的。用于呈现搜索结果的 Microsoft.Office.Server.Search.WebControls.SearchResultsBaseWebPart Webpart 使奇迹发生。
当 SearchResultsBaseWebPart 呈现的页面加载时,将为所有 ID 与 RegExp 过滤器匹配的 HTML 链接元素的 onlick 事件注册一个函数。页面的 unload 事件也已注册,以将包含序列化 Microsoft.Office.Server.Search.Query.QueryInfo 对象的 soap 请求发送到搜索 Web 服务 RecordClick 方法。QueryInfo 对象的属性随后存储在共享服务提供商数据库的 MSSQLogUnprocessed 和 MSSQLogNonClickedUnprocessed 表中。
这是迄今为止我发现的唯一查询日志记录功能。如果您知道或找到任何其他线索,请分享。
我通过查看 Reflector 中的不同类收集了这些信息。希望对您有所帮助。