我创建了一个仅称为:document的索引。当我跑步时:
http://bla:9200/_stats?pretty=true
我得到了这个(缩写):
{
"_shards" : {
"total" : 2,
"successful" : 1,
"failed" : 0
},
"_all" : {
"primaries" : {
"docs" : {
"count" : 31192,
"deleted" : 32424
},
"store" : {
"size_in_bytes" : 817228373
},
"indexing" : {
"index_total" : 2919822,
"index_time_in_millis" : 1759994,
"index_current" : 0,
"index_failed" : 0,
"delete_total" : 0,
"delete_time_in_millis" : 0,
"delete_current" : 0,
"noop_update_total" : 0,
"is_throttled" : false,
"throttle_time_in_millis" : 0
},
snip
这对我来说表明2919822文档已被索引/摄取。它对应于从我的C#代码发送到ES服务器的文档数。
但是,如果我运行此命令:
http://bla:9200/_cat/indices?v
我明白了:
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
yellow open document 8lqJK19xR3yJ7se2sLhWuQ 1 1 31192 32424 778.4mb 778.4mb
表明只有31192个文档。
有人可以解释哪个数字正确吗?
PS:
http://bla:9200/_cat/count/document?v
导致:
epoch timestamp count
1568629672 10:27:52 31522
答案 0 :(得分:2)
doc.count
代表在索引中建立索引的文档数,而index_total
代表在Elasticsearch正常运行期间执行的索引操作数。
因此,如果您更新文档,它将被视为一个索引操作,但您的doc.count
不会增加。请看一下这个示例,其中我们使用_bulk
API
POST documents/doc/_bulk
{"index":{"_id": 111}}
{"likes": 10, "user": "cs0815", "message": "elastic111"}
{"index":{"_id": 222}}
{"likes": 20, "user": "cs0815", "message": "elastic222"}
{"index":{"_id": 111}}
{"likes": 30, "user": "cs0816", "message": "elastic11111"}
{"index":{"_id": 222}}
{"likes": 40, "user": "cs0816", "message": "elastic22222"}
此后,我们将观察到doc.count
将为2,index_total
将为4:
因此,在您的情况下,您已完成index_total
2919822,docs.deleted
32424和docs.count
31192次(以及根据您的ID进行的许多重复的更新这些算作1)