SharePoint - Search: Code Snippet for using KeywordQuery in Server Object Model

  1. //SPSite object is the parameter  
  2. using (KeywordQuery keywordQuery = new KeywordQuery(site))  
  3.             {  
  4.                 keywordQuery.QueryText = string.Format("contentclass:STS_WEB contentclass:STS_SITE");  
  5.   
  6.                 var sourceID =contentSourceID;  
  7.   
  8.                 //Properties which we want in result  
  9.                 keywordQuery.SelectProperties.Add("Title");  
  10.                 keywordQuery.SelectProperties.Add("Path");  
  11.   
  12.                 //avoiding duplicate results  
  13.                 keywordQuery.TrimDuplicates = false;  
  14.   
  15.                 //Sorting   
  16.                 keywordQuery.EnableSorting = true;  
  17.                 keywordQuery.SortList.Add("Title", SortDirection.Ascending);  
  18.   
  19.                 var executor = new SearchExecutor();  
  20.                 using (new SPMonitoredScope("Workspaces search query"))  
  21.                 {  
  22.                     rtc = executor.ExecuteQuery(workspacesQuery);  
  23.                 }  
  24.   
  25.                 queryResultsTable = rtc.Filter("TableType",  KnownTableTypes.RelevantResults).First();  
  26.             }  
  27.             //Converting result table into DataTable  
  28.             if (queryResultsTable != null && queryResultsTable.RowCount > 0)  
  29.             {  
  30.                 workspacesTable = new DataTable();  
  31.                 workspacesTable.Load(queryResultsTable, LoadOption.OverwriteChanges);  
  32.             }