ElasticSearch JSON ожидания - PullRequest
0 голосов
/ 01 мая 2018

Мне нужно базовое определение и ожидание использования ElasticSearch. У меня есть постоянно растущая папка с данными в формате CSV (в файлах).

Elasticsearch нравится JSON. Я получил это, и у меня есть возможность конвертировать их без проблем.

Что мне нужно знать, так это: должна ли каждая строка CSV быть в своем собственном файле file.json, который будет рассматриваться для индексации? это то, что документ? или я собираю стек JSON-записей в один файл и запускаю их для индексации? Является ли запись JSON документом? или файл .json документ, как его видит ElasticSearch?

Спасибо.

1 Ответ

0 голосов
/ 04 мая 2018

По сути, каждая строка CSV считается документом, когда-то превращенным в JSON. Теперь у вас есть несколько вариантов.

A. Вы можете сохранить свой CSV-файл в том виде, в каком он есть, и использовать Logstash, чтобы использовать его с помощью фильтра csv и отправлять полученные документы JSON в Elasticsearch.

B. Вы можете преобразовать ваш файл CSV в другой файл, где каждая строка CSV превращается в однострочный документ JSON, т.е.

Вместо

Col1,Col2,Col3
Cell11,Cell12,Cell13
Cell21,Cell22,Cell23

У вас есть

{ "Col1": "Cell11", "Col2": "Cell12", "Col3": "Cell13" }
{ "Col1": "Cell21", "Col2": "Cell22", "Col3": "Cell23" }

Но вам все равно нужно будет использовать Logstash, чтобы загрузить этот файл с несколькими JSON в Elasticsearch

C. Последний вариант - преобразовать CSV-файл в так называемый массовый файл , который будет выглядеть следующим образом:

{ "index": {}}
{ "Col1": "Cell11", "Col2": "Cell12", "Col3": "Cell13" }
{ "index": {}}
{ "Col1": "Cell21", "Col2": "Cell22", "Col3": "Cell23" }

И затем вы можете загрузить этот файл с помощью одной команды через Bulk API .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...