简介 可以利用 Microsoft Office SharePoint Portal Server 2003 中的强大搜索数据集合,创建端对端的解决方案来执行搜索项数据的收集和查看。SharePoint Portal Server 会自动记录搜索项数据。在本文中,我们会展示如何将这种数据从每天的日志文件合并到 SQL Server 数据库中,并且使其可用于快速检索和分析。我们将详细说明要实现该任务需要执行的下列高级步骤: 1.创建 SQL 数据库、相关的存储过程和 DTS 软件包,以便将日志文件数据加载到数据库中。 2.创建 Web 部件以查看并筛选来自 SQL 数据库的搜索数据。 请注意,在 IIS 日志文件中记录并传输到数据库的搜索结果不包括查询的作用域信息(如果适用),也不包括仅属性查询的结果,例如查询由特定人员创建的文档。 注 本文假设您对 SharePoint Portal Server、.NET Framework 技术(例如 ASP.NET)以及 Microsoft Visual C# 编程语言具有非常深入的理解。您应该将本文与 Microsoft SharePoint Products and Technologies 2003 Software Development Kit (SDK) 中的其他参考资料一起使用。 存储数据:创建数据库、相关存储过程和 DTS 软件包 对于中央存储和简单查询,我们建议将搜索项数据信息从 IIS 日志文件加载到 SQL Server 数据库中。要采取三个步骤,如下所示: 1.创建数据库和表。 2.创建存储过程。 3.创建数据转换服务 (DTS) 软件包。 步骤 1. 创建数据库和表 使用“企业管理器”或相似的工具,在 SQL Server 计算机上创建数据库,以存储 IIS 日志文件信息、存储过程和 DTS 软件包。 在新的 SQL 数据库中创建以下两个表: • tblLogItems • tblSearchTerms 每个表都应该具有以下结构: [DateData] [varchar] (255)注 对于 tblSearchTerms 表中的 [DateData],该字段的类型为 [datetime] (8)。 [TimeData] [varchar] (255) [IP] [varchar] (255) [Type] [varchar] (255) [Page] [varchar] (255) [SearchTermData] [varchar] (255) [Port] [varchar] (255) [UserData] [varchar] (255) [IP2] [varchar] (255) [Browser] [varchar] (255) [HTTPCode] [varchar] (255) [Col012] [varchar] (255) [Col013] [varchar] (255) [Col014] [varchar] (255) [Col015] [varchar] (255) 注 DateData、TimeData、SearchTermData 和 UserData 字段用于 Web 部件查询中。IIS 日志文件中收集的其他信息存储在表中,可以通过修改 Web 部件查询来使用。 步骤 2. 创建存储过程 在本步骤中,创建以下八个存储过程: • sp_ReturnFileName • sp_DeleteIDA • sp_AppendTerms • sp_UpdateSearchTermData • sp_GetDateData • sp_GetUserData • sp_GetDatabyDate • sp_GetDatabyUser 存储过程 #1: sp_ReturnFileName 下面的存储过程,由 DTS 软件包使用,它返回前一天的 IIS 日志文件名。可以为 @stPrefix 变量指定不同的本地路径或通用命名约定 (UNC) 值。IIS 日志文件存储在路径 \WINDOWS\system32\LogFiles\W3SVC1\ 中,但可以将这些文件复制到另一个位置以便将来导入到数据库中。 注 您必须更改 @stPrefix 的变量声明,以便准确匹配您为本地路径或 UNC 路径指定的字符串的长度。 CREATE PROCEDURE sp_ReturnFileName AS DECLARE @dtRetrieveFile datetime, @stPrefix char(25), @stSuffix char(4), @stTemp char(2), @stYear char(2), @stMonth char(2), @stDay char(2) SET @dtRetrieveFile = DateAdd(d, -1, GetDate()) -- may include UNC or local path in @stPrefix -- change declaration to the number -- of characters in @stPrefix SET @stPrefix = '\\server_name\share\ex' SET @stSuffix = '.log' -- Get two-digit year SET @stYear = Cast(Right(DatePart(yy,@dtRetrieveFile), 2) As char(2)) -- Get two-digit month SET @stTemp = Cast(Datepart(mm,@dtRetrieveFile) As char(2)) SELECT @stMonth = CASE Len(@stTemp) WHEN 1 THEN '0' @stTemp ELSE @stTemp END -- Get two-digit day SET @stTemp = Cast(DatePart(dd,@dtRetrieveFile) As char(2)) SELECT @stDay = CASE Len(@stTemp) WHEN 1 THEN '0' @stTemp ELSE @stTemp END SELECT @stPrefix @stYear @stMonth @stDay @stSuffix GO 存储过程 #2: sp_DeleteIDA 下面的存储过程,用于 DTS 软件包中,它从 tblLogItems 表中删除不相关的项。 CREATE PROCEDURE sp_DeleteIDA AS DELETE tblLogItems WHERE SearchTermData = '/default.ida' Or SearchTermData Like '%root.exe' GO 存储过程 #3: sp_AppendTerms 下面的存储过程用于 DTS 软件包中,它将包含搜索项目的记录从 tblLogItems 表添加到 tblSearchTerms 表中。DateData 字段从 IIS 日志文件格式 (yyyy-mm-dd) 转换为 USA 格式 (mm/dd/yyyy),以适应显示目的以及在 Web 部件代码中更简便的进行查询。 CREATE PROCEDURE dbo.sp_AppendTerms AS INSERT INTO dbo.tblSearchTerms (DateData, TimeData, IP, Page, SearchTermData,
共2页: 上一页 1 [2] 下一页 |