Индексирование огромных документов по Elastic-поиску - PullRequest
0 голосов
/ 11 июня 2019

Мы используем кластер с общим 5 nodes (3 master 2 data) setting. Мы планируем проиндексировать документ размером до 100 МБ.

Мы с нетерпением ждем примерно 50K оборотов в минуту примерно такого размера и обеспечим возможности поиска по этому.

Один вид документа этой структуры

{ 
name: "abc",
id : "1",
elements:[
    {
    id:"1",
   value: " Some long text .... assume 2000 chars"
   },
   ....
   ....
   ..10K elements...
    ...
]
}

Предположим, что один из таких документов имеет размер ~100 MB. Мы планируем проиндексировать такой документ миллионами.

Попытка индексировать такой документ с помощью динамического сопоставления занимает около ~20 sec с shards =50 and replication = 0.

У нас включено сжатие gzip, и мы хотели бы масштабировать его и для других реплик.

Чтобы упомянуть настройки

на кластере у нас "heap_max": "69gb", "heap_used": "21.3gb",

на узле у нас есть "heap_committed": "17.4gb","heap_used": "5gb",

Также подкачка отключена, и мы используем SSD.

Наряду с этим мы играли с refresh_interval до 3 секунд. Это приводит к улучшениям, но мы не можем идти дальше 2 секунд.

Существуют ли какие-либо индексы, которые могут подсказать, сколько времени требуется ES для загрузки таких полезных нагрузок?

Есть ли какие-либо рекомендуемые оптимизации для такой огромной полезной нагрузки.

Мы уже смотрели - https://www.elastic.co/guide/en/elasticsearch/reference/current/tune-for-indexing-speed.html

Примечание : мы планируем использовать вложенные файлы для обеспечения возможностей поиска. Эти цифры ниже, чем упомянутые выше. Приведенный выше случай должен быть наилучшим, поскольку мы используем простейшее возможное отображение.

PS: В настоящее время Es V2.4.1 (скоро мы проводим обновление)

...