在请求

时间:2017-02-02 16:35:17

标签: solr lucene

是否可以在POST请求的正文中包含cursorMark值,而不是将其作为查询字符串参数发送?

以下查询:

{"query":"val:abc","limit":10,"cursorMark":"*","sort":"id asc"}

返回错误消息:“JSON请求中的未知顶级密钥:cursorMark”

1 个答案:

答案 0 :(得分:3)

根据Solr Json Request API documentation,每个查询字符串参数在 JSON API中都有相应的POST请求参数,例如 q - >查询开始 - >偏移等。

但是, cursorMark 查询字符串参数没有等效参数。

我所知道的最佳解决方案是将请求类型从 application / json 更改为 application / x-www-form-urlencoded ,它允许在POST中使用查询字符串参数要求的机构。我使用 application / json 的原因是为了获得json响应,但它变成了由 wt = json 参数控制的。

  1. 将查询uri更改为:http://localhost:8983/solr/myCore/select?wt=json
  2. 将POST请求参数更改回查询字符串对应项,即q,start,rows等
  3. UrlEncoded查询字符串。
  4. 将编码的查询字符串放在POST正文中。
  5. 将请求内容类型更改为 application / x-www-form-urlencoded