Есть текстовый файл на 1 млрд строк в кодировке utf8 на русском языке.
Нужно сделать импорт из этого файла в индекс elasticsearch, чтобы потом иметь полнотекстовый поиск по строчкам этим
Каждая строка файла должна стать новым документом в базе с одним полем, допустим "keyword", по которому потом и будем делать поиск.
Для дампов, восстановления из оных, перекидывания данных с прода на дев и тд пользуюсь вот этим инструментом: elasticdump
В вашем случае нужно лишь привести текстовый файл к json формату.
Вот в таком (для ластика версии 1.7)
{"_index":"<ваш_индекс>", "_type":"<ваш_type>", "_id":"1", "_source":{"key":"строка 1"}}
{"_index":"<ваш_индекс>", "_type":"<ваш_type>", "_id":"2", "_source":{"key":"строка 2"}}
сам разобрался спасибо огромное за поддержку!
подскажите пожалуйста, а эластикдамп может за раз класть больше чем 100 шт?
у меня база на 810 млн, сервер норм, мощный. могу я сделать так чтобы он за раз клал по 1000 например? по 2000? (из файла в индекс)
Да, этот параметр настраивается (см. раздел Option):
--limit (How many objects to move in batch per operation limit is approximate for file streams (default: 100) )
Посмотрите раздел "MultiElasticDump". Там как раз описывается вариант распараллеливания.
Какой именно лимит лучше выставить конкретно под вашу задачу затрудняюсь ответить, так как импортировать такие объемы пока не доводилось. Пробуйте постепенно увеличивать лимит пока не пойдут потери при импорте данных.