SP 365 rest search api 返回“500 内部服务器错误”以使用 HTTP POST

问题描述

我们的产品使用 SP 365 搜索 API。我们的一些客户报告说,当使用以下搜索 API 时:'/_api/search/postquery' with body:

    {'request': {
         'Querytext':'test','SourceId':'8413cd39-2156-4e00-b54d-11efd9abdb89','RowLimit':400,'SelectProperties':{
           'results':['Title','Path','Description','Write','Rank','Size']},'TrimDuplicates':true,'ClientType':'Custom','Culture':1030,'SortList':{'results':[{'Property':'Rank','Direction':'1'}]}
     }}

返回带有错误文本的 HTTP 状态代码 500(在 json 响应中):“发生未知错误。” 但是,如果在上面的查询添加一个条件以将其限制为特定的 SP 列表,例如:

     {'request': {
         'Querytext':'test AND "ListId":{A7B96B28-6062-435B-A2EE-4792512A95A1}','Direction':'1'}]}
     }}

然后查询运行良好。

这种情况发生在“pfgroupas.sharepoint.com”等特定租户身上。 这个 API 调用已经工作多年(从 SP 2013 开始),但在最近几天被破坏了。

解决方法

事实证明,对于某些租户,如果您指定“SortList”参数,内部服务器错误就会显现出来。如果您在没有它的情况下创建查询,例如:

{'request': {
     'Querytext':'test','SourceId':'8413cd39-2156-4e00-b54d-11efd9abdb89','RowLimit':400,'SelectProperties':{
       'results':['Title','Path','Description','Write','Rank','Size']},'TrimDuplicates':true,'ClientType':'Custom','Culture':1030
 }}

然后一切正常。在我看来像是服务器端的错误。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...