//SPSite object is the parameter
using (KeywordQuery keywordQuery = new KeywordQuery(site))
{
keywordQuery.QueryText = string.Format("contentclass:STS_WEB contentclass:STS_SITE");
var sourceID =contentSourceID;
//Properties which we want in result
keywordQuery.SelectProperties.Add("Title");
keywordQuery.SelectProperties.Add("Path");
//avoiding duplicate results
keywordQuery.TrimDuplicates = false;
//Sorting
keywordQuery.EnableSorting = true;
keywordQuery.SortList.Add("Title", SortDirection.Ascending);
var executor = new SearchExecutor();
using (new SPMonitoredScope("Workspaces search query"))
{
rtc = executor.ExecuteQuery(workspacesQuery);
}
queryResultsTable = rtc.Filter("TableType", KnownTableTypes.RelevantResults).First();
}
//Converting result table into DataTable
if (queryResultsTable != null && queryResultsTable.RowCount > 0)
{
workspacesTable = new DataTable();
workspacesTable.Load(queryResultsTable, LoadOption.OverwriteChanges);
}This example of KeywordQuery class in server side object model.
