您的位置:首页 > 产品设计 > UI/UE

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

2008-12-08 13:12 281 查看
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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: