Я пишу специальное приложение для поиска.В настоящее время используется класс KeywordQuery.Я могу получить результаты отлично, но если я пытаюсь отсортировать по пользовательскому свойству, он бомбардирует с:
Невозможно отсортировать по pid 400 по одной или нескольким из следующих причин: многозначныйfalse, двоичный: false, неиндексированный: 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();