Move the scroll ID from the DELETE /_search/scroll URL to its body.#158
Conversation
Scroll IDs can be too long for an HTTP request header, and so should only be put in the body. Putting them in the URL was deprecated in ElasticSearch 7.0.0 (April 2019). The SearchClient.scroll method already does this, it was only SearchClient.deleteScroll that did not. See https://www.elastic.co/guide/en/elasticsearch/reference/current/clear-scroll-api.html
|
Thanks, I've merged this. I don't think this was that big of a deal. The request url + parameters can be a a few KB. I don't think they deprecated the behavior. Also, Opensearch does not document the request body but the matrix tests seem to pass meaning it does work. The OS documentation isn't great. |
|
The HTTP header part can be 10k on AWS, and we have scroll IDs that overspilled that, that's how I noticed. |
|
It's not a header but the query string. But still, 10KB is a lot. Mostly ids are very short hashes; I wonder what they are doing differently in AWS. Are you submitting multiple hashes somehow? |
|
Right, I was referring to the non-body section of the HTTP request (preamble, URL plus query params, headers). That part is counted together. I think it's just one scroll ID, but it's a very complex query hitting a lot of documents. They are packing a lot of info about the query in there. |
Scroll IDs can be too long for an HTTP request header, and so should only be put in the body. Putting them in the URL was deprecated in ElasticSearch 7.0.0 (April 2019).
The SearchClient.scroll method already does this, it was only SearchClient.deleteScroll that did not.
See https://www.elastic.co/guide/en/elasticsearch/reference/current/clear-scroll-api.html