技术开发 频道

使用SharePoint Server 2007搜索对象模型编程创建搜索查询


【IT168技术文档】

  有两种方式可以以编程的方式进行搜索查询,一种是直接使用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];
0
相关文章