原文地址 SharePoint 2013 Search Keyword Query Class本文由SPFarmer翻译
KeywordQuery.和中都有一个类叫 KeywordQueryKeywordQuery
.NET之前的文章里介绍过。新建一个应用程序,然后添加下面的引用。这些文件可以在15 hive里面的ISAPI文件夹里找到:
datatable对象。
using System.Data;using Microsoft.SharePoint;using Microsoft.Office.Server.Search.Query;
一旦我们加好了这些,我们就可以开始了。有很多办法可以构建一个KeywordQuery对象。简单的做法是,使用一个SPSiteSharePoint 2010SPSite对象。
using (SPSite siteCollection = new SPSite(""))
KeywordQuery keywordQuery = new KeywordQuery(siteCollection);
文章,,有很多好的建议在里面。我现在要搜索SharePoint这个关键字。
keywordQuery.QueryText="SharePoint";
ResultTypes,现在我们不再需要这么做了。事实上,这整个过程的代码量减少了。现在我们使用新的SearchExecutor类。
SearchExecutorsearchExecutor =newSearchExecutor();
然后我们把KeywordQuery传递给他的ExecuteQuery方法。
ResultTableCollectionresultTableCollection =searchExecutor.ExecuteQuery(keywordQuery);
var resultTables =resultTableCollection.Filter("TableType",KnownTableTypes.RelevantResults);
var resultTable =resultTables.FirstOrDefault();
以前,我们不得不把数据加载到一个DataTable里,这个过程会增加一些代码量。然后,现在不用了,因为有了新的Table属性。
DataTable dataTable = resultTable.Table;
现在你有了一个DataTable,
下面是整个的代码:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; using System.Data;using Microsoft.SharePoint;using Microsoft.Office.Server.Search.Query; namespace SearchConsoleApplication1{class Program {static void Main(string[] args){using (SPSite siteCollection = newSPSite("")){KeywordQuery keywordQuery = new KeywordQuery(siteCollection);keywordQuery.QueryText = "SharePoint";SearchExecutor searchExecutor = new SearchExecutor();ResultTableCollection resultTableCollection =searchExecutor.ExecuteQuery(keywordQuery);var resultTables =resultTableCollection.Filter("TableType",KnownTableTypes.RelevantResults);var resultTable =resultTables.FirstOrDefault();DataTable dataTable = resultTable.Table;}} }}因此,如果你有很多基于搜索的代码,那么你需要升级一下。然而,我觉得这是一个简化代码的好机会。
PublishedJan 03 2013, 11:42 AMbyCoreyRoth
Filed under:SharePoint,Enterprise Search,
如果心在远方,只需勇敢前行,梦想自会引路,