我正在使用 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 控制台表现不同?
您可以将
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"
}
}
}