【Bear-Study-Hard】使用SharePoint Server 2007搜索对象模型编程

摘要:学习如何使用Microsoft Office SharePoint Server 2007 对象模型以编程的方式创建搜索查询。

 

适用于Microsoft Office SharePoint Server 2007

 

Patrick Tisseghem, U2U

July 2007

 

简介

有两种方式可以以编程的方式进行搜索查询,一种是直接使用Microsoft Office SharePoint上下文中的对象模型,另一种是通过使用搜索的Web Service进行远程调用。Office SharePoint Server 2007对象模型提供了一套新的类,你可以使用它们编程执行一个搜索查询。

 

代码

以下代码需要添加Microsoft.Office.Server.Search.dll组件。示例代码中使用的主要命名空间是Microsoft.Office.Server.Search.Query

构建一个关键字查询字符串

使用关键字语法构建一个查询字符串是比较简单的。在构建查询字符串的时候,在想要从查询结果中排除的关键字加上连字符(-)前缀;在向要包含在查询结果中的关键字加上加号(+)前缀。你也可以添加属性标准。下面的查询当执行时返回所有包含”Business”关键字并且不是由”Brian”撰写的文档。

Business -isDocument:0 -author:brianc

构建一个全文检索字符串

使用SQL语言扩展方式的查询字符串允许更强大的搜索请求,支持全文检索,控制返回的字段,而且在条件中可以适用搜索范围和属性。下面是前面查询例子以全文查询字符串的形式来表示。

SELECT Title, Rank, Write, Url FROM SCOPE()

   WHERE 'Scope'= 'Marketing Documents' AND

   FREETEXT('business') AND isDocument 1 0

   AND author IS NOT 'Brian'}

执行一个关键字查询字符串

执行关键字语法的查询字符串时,需要创建一个KeywordQuery类的对象实例,然后将它提供给服务器场中的Shared Services ProviderSSP)上下文。可以使用SPSite对象的一个实例来做这件事情。然后,然后给QueryText属性的查询字符串的执行和指派设置一个或多个属性。Execute方法返回一个包含查询结果的ResultTableCollection对象。使用ResultType枚举,可以设置需要返回的结果类型,然后将它们绑定到基于Windows或者ASP.NET的控件上。

SPSite site = new

   SPSite("http://moss.litwareinc.com");

KeywordQuery kwq = new KeywordQuery(site);

kwq.QueryText = textBoxKeyword.Text;

kwq.ResultTypes =

   ResultType.RelevantResults;

ResultTableCollection results =

   kwq.Execute();

ResultTable resultTable =

   results[ResultType.RelevantResults];

执行一个全文检索字符串

使用全文检索方式的查询字符串,它的执行过程与前面的代码一样。但是,现在我们使用的是FullTextSqlQuery类。下面的代码示例显示了另一种提供给SSP上下文构造器的方法。这次,需要添加Microsoft.Office.Server.ServerContext引用来实现这个功能。

ServerContext context =

ServerContext.GetContext("SharedServices1");

FullTextSqlQuery qry = new

   FullTextSqlQuery(context);

qry.ResultTypes =

   ResultType.RelevantResults;

qry.EnableStemming = true;

qry.TrimDuplicates = true;

qry.QueryText = query;

ResultTableCollection results =

   qry.Execute();

ResultTable resultTable =

   results[ResultType.RelevantResults];

 

阅读

Microsoft Office SharePoint Portal Server 2003包含一个名为QueryProvider的类,可以编程执行搜索查询。这个类仍然可以使用,但是现在是否决的。Office SharePoint Server 2007提供了两个新的类;均继承自Query基类。

l  KeywordQuery构建一个关键字语法来执行查询搜索。

l  FullTextSqlQuery构建全文SQL语法来执行查询搜所。

两个的执行过程一样。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12639172/viewspace-374803/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/12639172/viewspace-374803/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值