分享
 
 
 

创建Web部件显示PortalServer的搜索数据

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

简介

可以利用 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 日志文件存储在路径 WINDOWSsystem32LogFilesW3SVC1 中,但可以将这些文件复制到另一个位置以便将来导入到数据库中。

注 您必须更改 @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_nameshareex'

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,

Port, UserData, IP2, Browser, HTTPCode, Col012,

Col013, Type)

SELECT

CAST(DateData AS DateTime), TimeData, IP, Page, SearchTermData,

Port, UserData, IP2, Browser, HTTPCode, Col012, Col013, Type

FROM

dbo.tblLogItems

WHERE

(Type LIKE 'POST') AND (NOT (UserData LIKE '-')) AND (NOT (SearchTermData LIKE '-'))

GO

存储过程 #4: sp_UpdateSearchTermData

下面的存储过程用于 DTS 软件包中,它清除最近添加到 tblSearchTerms 表中的搜索项。

CREATE PROCEDURE dbo.sp_UpdateSearchTermData

AS UPDATE

dbo.tblSearchTerms

SET

SearchTermData = REPLACE(SUBSTRING(SearchTermData, 64,

PATINDEX('%+Search+Server+Name%', SearchTermData) - 64), '+', ' ')

WHERE

(PATINDEX('%+Search+Server+Name%', SearchTermData) 0)

GO

存储过程 #5: sp_GetDateData

下面的存储过程由 Web 部件使用,它从 tblSearchTerms 表中检索日期的列表。

CREATE PROCEDURE dbo.sp_GetDateData

AS SELECT DISTINCT DateData

FROM

dbo.tblSearchTerms

GROUP BY DateData

GO

存储过程 #6: sp_GetUserData

下面的存储过程由 Web 部件使用,它从 tblSearchTerms 表中检索不同用户的列表。

CREATE PROCEDURE dbo.sp_GetUserData

AS SELECT DISTINCT UserData

FROM

dbo.tblSearchTerms

GROUP BY UserData

GO

存储过程 #7: sp_GetDatabyDate

下面的存储过程由 Web 部件使用,它用于从 tblSearchTerms 表中检索特定日期或日期范围的搜索项。

CREATE PROCEDURE dbo.sp_GetDatabyDate(@StartDate DATETIME,

@EndDate DATETIME)

AS SELECT

SearchTermData, DateData, COUNT(SearchTermData) AS strCount

FROM

dbo.tblSearchTerms

WHERE

(DateData = @StartDate) AND (DateData <= @EndDate)

GROUP BY SearchTermData, DateData

GO

存储过程 #8: sp_GetDatabyUser

下面的存储过程由 Web 部件使用,它用于从 tblSearchTerms 表中检索特定用户的搜索项。

CREATE PROCEDURE dbo.sp_GetDatabyUser

(@UserName VARCHAR(255))

AS SELECT

SearchTermData, DateData, COUNT(SearchTermData) AS strCount

FROM

dbo.tblSearchTerms

WHERE

(UserData = @UserName)

GROUP BY SearchTermData, DateData

GO

步骤 3. 创建 DTS 软件包

数据转换服务 (DTS) 软件包是使用 SQL Server Enterprise Manager 中的 DTS 设计器创建的。要创建一个软件包,请右键单击 SQL Server 实例下的 Data Transformation Services 文件夹,然后选择 New Package。

要创建 DTS 软件包,请执行以下七个步骤:

• 创建连接。

• 创建动态属性任务。

• 创建执行 SQL 任务。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有