0

我在 MarkLogic REST API 中构造了以下有效负载:

"query": {
    "jsonPropertyRangeQuery": {
        "property": "rangeChange",
        "operator": ">",
        "value": 60
    }
}

它抛出错误:“messageCode”:“MANAGE-INVALIDPAYLOAD”,“message”:“MANAGE-INVALIDPAYLOAD:(err:FOER0000)有效负载在结构,内容类型或值方面有错误。XDMP-QUERYNODE:cts:query(object-节点{\"property\":text{\"rangeChange\"}, \"operator\":text{\">\"}, \"value\":text{\"60\"}}) --查询元素 object-node{\"property\":text{\"rangeChange\"}, ...} 包含未知子节点"}}

如果我在下面做,那么它会通过

"query": {
    "jsonPropertyValueQuery": {
        "property": "city",
        "value": "Chicago"
     }
}

任何想法?

4

2 回答 2

0

尝试改用结构化查询:

"query": {
  "range-query": {
    "json-property": "city",
    "value": "Chicago",
    "range-operator": "GT"
  }
}

另请参阅:https ://docs.marklogic.com/guide/search-dev/structured-query#id_83393

于 2019-11-25T09:41:28.807 回答
0

Geert 回答的一个脚注澄清了“查询”的顶部键包含结构化查询....

首先,鉴于问题中没有出现“percentChange”,这可能是一个不同的问题。

无论如何,要将 cts.query() 的 JSON 序列化发送到 /v1/search 端点,包含 cts.query() 的键应该是“ctsquery”而不是“query”,因此 REST API 知道如何反序列化询问。

希望有帮助,

于 2019-11-25T17:11:03.300 回答