Kibana 查询结果在 _count 和 _search 之间不匹配 api

Kibana query results mismatch between _count & _search api

正在执行下面的 kibana 查询,当我执行 _count api 时得到 count:45。但是如果我在同一个索引上使用 _search api 执行相同的查询,我只会得到 10 个文档作为响应而不是 45 个文档

请查找以下 kibana 查询

GET documents_test2/_count
{
    "query": {
        "query_string" : {
            "default_field" : "*",
            "query" : "40011"
        }
    }
}

对于上述 Kibana 查询,我得到的响应低于 count:45

{
  "count": 45,
  "_shards": {
    "total": 5,
    "successful": 5,
    "skipped": 0,
    "failed": 0
  }
}

但是如果我使用 _search api 而不是 _count 执行下面的查询,我只会得到 10 的响应文档

GET documents_test2/_search
{
    "query": {
        "query_string" : {
            "default_field" : "*",
            "query" : "40011"
        }
    }
}

这是因为,当您使用“_search”时,它使用“size”参数到 return 否.的相关文件。由于您没有在此处传递该参数,因此它传递了 默认值,即 10。因此只有 10 个文档是 return。

将 "Size" 参数值传递给 return 任意数量的文档。

GET documents_test2/_search
{
   "size" : 45,
   "query": {
     "query_string" : {
        "default_field" : "*",
        "query" : "40011"
    }
}

您还可以检查“From”参数以从弹性搜索中获取分页结果(滑动window)。 例如如果你想获得页面大小为10的第3页文档,你可以通过 "Size" : 10 , "From" : 20 (即 pagesize X (pageno.- 1) = 10 * (3-1) = 10 X 2 = 20

检查 https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-from-size.html 了解更多详情。