设为首页 收藏本站
查看: 971|回复: 0

[经验分享] 使用SharePoint Server 2007搜索对象模型编程创建搜索查询

[复制链接]

尚未签到

发表于 2015-9-29 13:47:35 | 显示全部楼层 |阅读模式
  
MOSS Visual How To

使用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 Provider(SSP)上下文。可以使用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语法来执行查询搜所。
两个的执行过程一样。

原文地址:http://msdn2.microsoft.com/en-us/library/bb626127.aspx
本文旨在帮助大家学习,帮助英文不好的MOSS爱好者,分享我的学习经验。如有错误请大家指出,共同进步:)

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-120556-1-1.html 上篇帖子: TFS2010:建立基于Sharepoint的项目Portal 下篇帖子: sharepoint webpart开发中遇到的问题 This type of page is not served.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表