如何在WSS中利用KeywordQuery创建搜索查询

WSS(Windows SharePoint Services)
KeywordQuery可执行关键字语法搜索查询,可以将搜索条件直接传递给搜索组件而无需通过搜索条件来分析以生成查询。


1.添加两个引用
Microsoft.Sharepoint
Microsoft.Sharepoint.Search

如果你使用MOSS操作可以引入Microsoft.Office.Server.Search


2.代码实现
类的构造函数具有两次重载;当实例化类时,必须指定网站集(作为 SPSite 类的实例)或者网站名称

DataTable resultsDataTable  =   new  DataTable(); 
using  (SPSite site  =   new  SPSite( " http://server/ " )) 

KeywordQuery query 
=   new  KeywordQuery(site); 
query.QueryText 
=  queryText; 
query.ResultTypes 
=  ResultType.RelevantResults; 
ResultTableCollection resultTables 
=  query.Execute(); 
if  (resultTables.Count  >   0

ResultTable relevantResults 
=  resultTables[ResultType.RelevantResults]; 
resultsDataTable.Load(relevantResults, LoadOption.OverwriteChanges); 


return  resultsDataTable; 

 

虽然在WSS中的返回的Microsoft.SharePoint.Search.Query.ResultType只能是RelevantResults,但是在代码中你还是必须要指明。否则不会返回任何ResultTable。

Microsoft.Office.Server.Search.Query.RelevantResults可以用四种返回结果。

query.ResultTypes  =  ResultType.RelevantResults; 

 


3.获取特定属性字段
默认返回以下属性字段:
Work ID
Rank
Title
Author
Size
Path
Description
Write
SiteName
CollapsingStatus
HitHighlightedSummary
HitHighlightedProperties
ContentClass
IsDocument
PictureThumbnailURL

如果你想要返回确定的属性字段,设置query.SelectProperties,下面的实例只返回Title和Size

query.SelectProperties.Add( " title " ); 
query.SelectProperties.Add(
" size " ); 

 

 

4.设置设置返回结果分页

int  pageSize  =   3
int  page  =   0


query.StartRow 
=  page  *  pageSize; 
query.RowLimit 
=  pageSize; 

 

5.设置返回结果排序

query.SortList.Add( " Rank " , SortDirection.Ascending); 
query.SortList.Add(
" WorkId " , SortDirection.Descending); 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值