2015-03-25 4 views
9

Я пытаюсь получить статистику/подсчеты по индексам в моем кластере elasticsearch (1.2.1). Я использовал Indices Stats API (конечная точка _stats), чтобы получить общее количество первичных документов и их размер на диске. Однако я начал экспериментировать с Count API (конечная точка _count) и заметил, что значения не выравниваются.Количество экземпляров Elasticsearch, возвращенных _stats versus _count

В чем разница между этими значениями? Это не совсем ясно из документации, хотя ключ в документации указывает, что значение, возвращаемое из Indicies Stats, может измениться при обновлении индекса. Это заставляет меня задаться вопросом, является ли это более низким значением уровня Lucene.

Индексы Статистика API

localhost:9200/my_index/_stats 

...snip... 

"_all" : { 
    "primaries" : { 
    "docs" : { 
     "count" : 8284, 
     "deleted" : 87 
    }, 
    } 
} 

...snip... 

Граф API

localhost:9200/my_index/_count 

{ 
    "count" : 6854, 
    "_shards" : { 
    "total" : 40, 
    "successful" : 40, 
    "failed" : 0 
    } 
} 

ответ

17

На самом деле, docs.count вы получите обратно из индексов статистика API также включает в себя количество вложенных документов, присутствующих в индексе так будет всегда быть больше или равно, чем счет, который вы возвращаете из API счета, который возвращает только количество документов верхнего уровня, то есть документы, которые будут возвращены из поискового запроса.

Итак, судя по номерам, которые вы опубликовали, похоже, что ваш индекс содержит документы с полями, тип которых nested в сопоставлении. Звучит правильно?

+0

Это вообще помогло? – Val

+1

Это должно быть принято как правильный ответ. – Midwire

Смежные вопросы