我有一个要求,我想以编程方式获取搜索结果。为此,我使用KeyWordQuery以编程方式进行搜索。但是在这里,我得到的结果比默认的SharePoint搜索少,它从结果中省略了一些记录。
这是我正在使用的代码
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);
如果我在 sharepoint 搜索页面中获得 100 个结果,使用相同的查询文本,我会得到 96-97 个结果。有人可以帮我解决这个问题吗
你有没有试过"objkeywordquery。EnableStemming = true;" ?
看起来默认的 SharePoint 搜索已启用;我们遇到了类似的问题,这解决了它。
希望对您有所帮助。
文森特