簡體   English   中英

在請求中使用 cursorMark 向 Solr POST json 請求

[英]POST json request to Solr with cursorMark in request

是否可以在 POST 請求的正文中包含cursorMark值而不是將其作為查詢字符串參數發送?

以下查詢:

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

返回帶有消息的錯誤: “JSON 請求中的未知頂級鍵:cursorMark”

根據Solr Json Request API文檔 ,每個查詢字符串參數在JSON API中都有對應的POST請求參數,例如q - > querystart - > offset等。

但是, 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

https://solr.apache.org/guide/7_7/json-request-api.html#passing-parameters-via-json說您可以使用非 JSON 參數來擴充基於 JSON 的 POST。 我在 2022 年使用包含"params": {"cursorMark": "*"}的 JSON 查詢使其工作,而無需求助於更改請求類型(如已接受的答案中所建議)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM