无法获取elasticsearch中索引中的所有文档

问题描述 投票:0回答:1

我正在使用 Kibana 的开发工具控制台并尝试获取索引的所有文档。然而,我只得到了部分结果。

假设我有一个包含美国每个州信息的索引(50 个文档)。如果我在开发工具中进行此搜索,我只会获得新泽西州到怀俄明州的文档。我拿不到任何 AK 到 MS 的东西。

GET state_info/_search 
{
  "query" : {
      "match_all" : {}
   }
}

我尝试将大小设置为 10000 仍然无济于事 - 仅显示从 NJ 到 WY 的文档。

GET state_info/_search 
{
  "size" : 10000,
  "query" : {
      "match_all" : {}
   }
}

但是,有一个带有弹性客户端的.net应用程序,它可以查看从AK到WY的所有文档。如果我使用 .net 应用程序中的 AK 状态的 documentID 并在 devtool 控制台中搜索,我会看到该文档。

GET state_info/_doc/esfjxcjdjhfhghWinD

我错过了什么?为什么 kibana 的 devtool 控制台表现不同?

elasticsearch kibana
1个回答
0
投票

您可以将

index.max_result_window
从 10k(默认最大值)增加到您需要的某个值。请注意,不建议将该数字增加太多。但如果这是一次性操作,那就可以了。

PUT state_info/_settings
{
  "index.max_result_window": 100000
}

GET state_info/_search 
{
  "size" : 100000,
  "query" : {
      "match_all" : {}
   }
}

注意:首先可以通过以下API调用来测试文档是否存在。

GET state_info/_search
{
  "query": {
    "match": {
      "state": "AK"
    }
  }
}

“state”:您的字段名称和“AK”:您的字段值

要检查索引中存在多少文档,您可以使用

_count
API 调用。

GET state_info/_count

请注意,您的应用程序可以使用另一个索引。要检查所有索引,您可以创建如下查询。

GET _all/_search
{
  "query": {
    "match": {
      "state": "AK"
    }
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.