【发布时间】:2019-06-18 16:46:11
【问题描述】:
我正在编写一个自定义搜索应用程序。当前使用 KeywordQuery 类。我可以得到很好的结果,但如果我尝试按自定义属性排序,它会爆炸:
无法按 pid 400 对一项或多项进行排序 出于以下原因: 多值:假,二进制:假, 非索引:true。
以下是代码。有人发现问题吗?如果我按“排名”排序,它会正常工作,但如果我使用管理属性,则不会。
KeywordQuery query = new KeywordQuery(proxy);
query.IgnoreAllNoiseQuery = false;
query.ResultsProvider = Microsoft.Office.Server.Search.Query.SearchProvider.Default;
//Return following properties
query.SelectProperties.Add("Title");
query.SelectProperties.Add("Path");
query.SelectProperties.Add("SiteDescription");
query.SelectProperties.Add("SiteKeywords"); //This is a multi-value so will have to be parsed
query.SelectProperties.Add("SiteType");
query.SelectProperties.Add("ContentClass");
query.SelectProperties.Add("SiteName");
//Query text (WHERE)
query.QueryText = queryText;
//Sort
//Not sure what the criteria is here, but trying to sort by Title does not work. ULS indicated it may need to be an indexed column?
query.SortList.Add("Title", Microsoft.Office.Server.Search.Query.SortDirection.Descending);
query.ResultTypes |= ResultType.RelevantResults;
ResultTableCollection searchResults = query.Execute();
【问题讨论】:
标签: sharepoint sharepoint-2010