Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SharePoint关键字查询-如何排序_Sharepoint_Sharepoint 2010 - Fatal编程技术网

SharePoint关键字查询-如何排序

SharePoint关键字查询-如何排序,sharepoint,sharepoint-2010,Sharepoint,Sharepoint 2010,我正在编写一个自定义搜索应用程序。当前正在使用关键字查询类。我可以很好地获得结果,但如果我尝试按自定义属性进行排序,它会爆炸: 无法按pid 400对一个或多个进行排序 原因如下: 多值:false,二进制:false, 非索引:true 下面是代码。有人注意到这个问题吗?如果我按“等级”排序,它会工作得很好,但如果我使用的是一个被管理的属性,则不会 KeywordQuery query = new KeywordQuery(proxy); query.IgnoreAllNoise

我正在编写一个自定义搜索应用程序。当前正在使用关键字查询类。我可以很好地获得结果,但如果我尝试按自定义属性进行排序,它会爆炸:

无法按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();

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

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

在对内容进行爬网之前,必须将托管属性设置为“可排序”。您可以使用powershell进行设置。

在对内容进行爬网之前,必须将托管属性设置为“可排序”。您可以使用powershell进行设置。

因此我一直在尝试按“标题”字段排序。当我为标题创建自己的托管属性时,我发现排序是有效的,映射到与OOB标题相同的爬网属性,并选中“通过使用哈希进行比较来减少文本属性的存储要求”。

因此我一直在尝试按“标题”字段排序。我发现,当我创建自己的标题托管属性(映射到与OOB标题相同的爬网属性)并使用“通过使用哈希进行比较减少文本属性的存储要求”时,排序是有效的选中。

标准标题托管属性不可排序

标准标题托管属性不可排序