I'm trying to programatically search a sharepoint site. The problem is, the results returned are from all site collections. How can I limit my search to only one site collection.
Here is how my code looks like
using Microsoft.Office.Server.Search;
using Microsoft.Office.Server.Search.Query;
using (var siteColl = new SPSite(siteCollUrl))
{
using (SPWeb site = siteColl.RootWeb)
{
KeywordQuery qRequest = new KeywordQuery(siteColl);
qRequest.QueryText = strKeyword;
qRequest.ResultTypes = ResultType.RelevantResults;
ResultTableCollection queryResults = qRequest.Execute();
ResultTable queryResultsTable = queryResults[ResultType.RelevantResults];
DataTable queryDataTable = new DataTable();
queryDataTable.Load(queryResultsTable, LoadOption.OverwriteChanges);
qRequest.SelectProperties.Add("Title");
var results = from queryResult in queryDataTable.AsEnumerable()
select new
{
Title = queryResult.Field<string>("Title"),
};
foreach (var v in results)
{
Console.WriteLine(v.Title);
}
}
}
}