ElasticSearch查询未返回滚动查询的_scroll_id

mqkwyuun  于 2023-02-11  发布在  ElasticSearch
关注(0)|答案(1)|浏览(201)

我们有一个Elasticsearch集群,除了滚动不起作用外,其他都运行良好。当我使用?scroll=1m查询字符串进行查询时,结果中没有返回_scroll_id
要检查它是否与现有索引有关,我创建了一个新索引:

PUT scroll_test

POST scroll_test/1
{
    "foo": "bar"
}

POST scroll_test/2
{
    "foo": "baz"
}

POST /scroll_test/_search?scroll=1m
{
    "size": 1, 
    "query": {
        "match_all": {}
    }
}

退货

{
   "took": 2,
   "timed_out": false,
   "_shards": {
      "total": 5,
      "successful": 5,
      "failed": 0
   },
   "hits": {
      "total": 3,
      "max_score": 1,
      "hits": [
         {
            "_index": "scroll_test",
            "_type": "1",
            "_id": "AV0N_R0jl33mdjPtW4uQ",
            "_score": 1,
            "_source": {
               "foo": "bar"
            }
         }
      ]
   }
}

我们刚刚完成了从v5.2到v5.4.3的滚动升级(集群运行状况现在为绿色)。升级到v5.4.3后,滚动仍然不起作用。
我能够在本地Elasticsearch v5.4.2示例上执行基于滚动的查询。

myss37ts

myss37ts1#

阅读了很多其他的问题后,我带走了这些主要的想法:

  • Aggregation can't scroll
  • 我从Kibana“Discover”页面的“inspect”按钮复制的查询中有这个问题,但我不知道它在做什么,我能够删除它,并得到似乎很好的结果。
  • 不要使用滚动,只使用search_after
  • docs state:我们不再建议使用scroll API进行深度分页。如果需要在分页超过10,000次时保留索引状态,请使用带有时间点(PIT)的search_after参数。

我不知道聚合是否也会错过search_after,但我现在不使用它们是为了安全起见。

相关问题