首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SharePoint KeywordQuery -如何排序

SharePoint KeywordQuery -如何排序
EN

Stack Overflow用户
提问于 2010-06-30 23:35:55
回答 4查看 7.4K关注 0票数 1

我在写一个自定义搜索应用程序。目前正在使用KeywordQuery类。我可以很好地获得结果,但如果我尝试按自定义属性进行排序,它会使用以下内容进行轰炸:

由于以下一个或多个原因,

无法按pid 400进行排序:多值: false,二进制: false,non: true。

下面是代码。有人发现问题了吗?如果我按“等级”排序,它会很好,但如果我使用的是堆积如山的属性。

代码语言:javascript
复制
   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();
EN

回答 4

Stack Overflow用户

发布于 2011-04-14 13:03:27

在抓取内容之前,必须将托管属性设置为“sortable”。您可以使用powershell来设置这个选项。

票数 3
EN

Stack Overflow用户

发布于 2011-11-22 21:12:08

所以我一直在按“标题”字段排序。我发现,当我为标题创建自己的托管属性(映射到与OOB标题相同的爬行属性)时,排序可以工作,并使用“通过使用哈希进行比较来减少文本属性的存储需求”。检查过了。

票数 1
EN

Stack Overflow用户

发布于 2010-07-01 21:36:58

如果是托管属性,则需要有选项“通过使用哈希进行比较来减少文本属性的存储需求”。检查过了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3154188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档