我使用此命令,该命令应匹配所有文档:
curl -XGET 'localhost:9200/users/_search?pretty' -H 'Content-Type: application/json' -d'
{
"query": { "match_all": {} }
}
'
我收到了这个回复:
{
"took" : 0,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : 0,
"max_score" : null,
"hits" : [ ]
}
}
但我99.9%肯定我有关于该指数的文件。如果我是对的,为什么不显示比赛?如果我错了,我该如何确认?
答案 0 :(得分:1)
如果您知道(a)所有文档的存储位置以及(b)服务器认为“用户”所在的位置,您应该能够确定发生了什么。索引实际上是。
对于第一个问题,您可以点击_cat/indices
端点以查看每个索引中有多少文档(" docs.count"列):
$curl -XGET 'http://localhost:9200/_cat/indices?v'
health status index pri rep docs.count docs.deleted store.size pri.store.size
green open query 1 0 0 0 159b 159b
green open some_index 1 0 54 0 24.7kb 24.7kb
green open autocomplete 1 0 0 0 159b 159b
green open test_index 2 0 10065 4824 7.9mb 7.9mb
对于第二个问题,请检查服务器上定义的别名。用户"可能是"用户"已被定义为索引的别名,该索引没有任何文档,或者可能已使用排除所有文档的过滤器在该索引上定义了过滤后的别名(许多别名包含与日期相关的过滤器,将排除非常特定日期范围之外的所有文档)。要检查是否存在别名,可以使用
$curl -XGET 'http://localhost:9200/_aliases?pretty=true'