我们有一个高度自定义的SharePoint发布(WCM)网站,不使用Web部件来满足XHTML和(AA)可访问性准则。 问题在于searchfunction不会生成任何使用情况统计信息(SSP中“searchpipe理”中的使用情况报告)。 我们知道这取决于我们的定制,因为我们在农场中有几个OOTB团队网站正在生成search统计。 我们不确定我们需要解决这个问题。 看来我们可能需要连接一个调用search.asmx web服务,但我不知道。 也许我们需要从SharePoint API中调用一些东西作为我们对search服务调用的一部分? 我不确定。
有没有人在那里build立了一个高度定制的SharePoint网站(没有网站部分),并loggingsearch统计资料,你可以评论你是如何做到的? 或者,任何人都可以提供有关物理学如何产生的见解。
如果有帮助,我们正在运行一个中等规模的农场,有2个WFE,1个索引服务器和1个SQL Server服务器。 所有Windows 2003 R2 SP2,32位。 MOSS 2007 SP1(加上12月CU)企业版。
谢谢,詹姆斯。
PS这个问题以前问堆栈溢出( https://stackoverflow.com/questions/1432182/how-do-sharepoint-search-statistics-get-generated ),但一些评论者build议它应该移到这里。
这可能不是你想要听到的答案,但我们的解决方法是将search控制webparts(只需searchboxex我认为)放在隐藏的内容占位符(在我们的例子中为ContentPlaceHolderId = PlaceHolderSearchArea)
从我迄今为止收集到的查询通过调用searchWeb服务的RecordClick方法进行logging。 用于呈现search结果的Microsoft.Office.Server.Search.WebControls.SearchResultsBaseWebPart webpart使得魔术成为现实。
当由SearchResultsBaseWebPart呈现的页面被加载时,为ID匹配RegExpfilter的所有HTML链接元素的onlick事件注册函数。 页面的卸载事件也被注册,以发送包含序列化的Microsoft.Office.Server.Search.Query.QueryInfo对象的SOAP请求到searchWeb服务RecordClick方法。 然后将QueryInfo对象的属性存储在共享服务提供程序数据库中的MSSQLogUnprocessed和MSSQLogNonClickedUnprocessed表中。
这是迄今为止唯一的查询日志loggingfunction。 如果您知道或find其他线索,请分享。
我通过查看Reflector中的不同类来收集这些信息。 我希望它有帮助。