Sharepoint Keywordquery search returns less results than default sharepoint search
-
10-12-2019 - |
Question
I have a requirement in which I want to get the search results programmatically. For this I am using KeyWordQuery to search programmatically. But here I am getting less results that default SharePoint search, it is omitting some records from the results.
Here is the code I am using
SPSite site = SPContext.Current.Site;
KeywordQuery objkeywordquery = new KeywordQuery(site);
objkeywordquery.QueryText = strQuery;
objkeywordquery.SelectProperties.Add("Title");
objkeywordquery.SelectProperties.Add("Path");
objkeywordquery.ResultsProvider = SearchProvider.Default;
objkeywordquery.ResultTypes = ResultType.RelevantResults;
objkeywordquery.RowLimit = 5000
ResultTableCollection queryResults = objkeywordquery.Execute();
ResultTable queryResultsTable = queryResults[ResultType.RelevantResults];
DataTable queryDataTable = new DataTable();
queryDataTable.Load(queryResultsTable, LoadOption.OverwriteChanges);
f I get 100 results in sharepoint search reults page, with the same querytext I get 96-97 results. Can someone help me with this
Solution
Try setting TrimDuplicates = false;
http://msdn.microsoft.com/en-us/library/microsoft.office.server.search.query.query.trimduplicates.aspx
SPSite site = SPContext.Current.Site;
KeywordQuery objkeywordquery = new KeywordQuery(site);
objkeywordquery.QueryText = strQuery;
objkeywordquery.SelectProperties.Add("Title");
objkeywordquery.SelectProperties.Add("Path");
objkeywordquery.ResultsProvider = SearchProvider.Default;
objkeywordquery.ResultTypes = ResultType.RelevantResults;
objkeyworkquery.TrimDuplicates = false;
objkeywordquery.RowLimit = 5000
ResultTableCollection queryResults = objkeywordquery.Execute();
ResultTable queryResultsTable = queryResults[ResultType.RelevantResults];
DataTable queryDataTable = new DataTable();
queryDataTable.Load(queryResultsTable, LoadOption.OverwriteChanges);
Licensed under: CC-BY-SA with attribution
Not affiliated with sharepoint.stackexchange