Как массово изменить формат JSON для Elastic Search

У меня есть приведенный ниже формат, и я надеялся выполнить предварительную массовую обработку с использованием эластичного поиска.

{"title":"April","url":"https://simple.wikipedia.org/wiki/April", "abstract":"April is the 4th month of the year, and comes between March and May. It is one of four months to have 30 days.","sections":["The Month","April in poetry","Events in April","Fixed Events","Moveable Events","Selection of Historical Events","Trivia","References"]}
{"title":"August","url":"https://simple.wikipedia.org/wiki/August", "abstract":"August (Aug.) is the 8th month of the year in the Gregorian calendar, coming between July and September.","sections":["The Month","August observances","Fixed observances and events","Moveable and Monthlong events","Selection of Historical Events","Trivia","References"]}

Я пытаюсь добавить индекс, введите строку перед каждой моей строкой.

{"index":{"_index":"myindex","_type":"wiki","_id":"1"}}

Читая предыдущие посты, я использую пост Кевина Марша, как показано ниже:

cat file.json jq -c '.[] | {"index": {"_index": "myindex", "_type": "wiki", "_id": .id}}, .' 

Я не использую канал, поскольку я пытаюсь выяснить ошибку, которая предшествует этому. Я получаю ошибку jq: нет такого файла или каталога. Я тогда использовал jq --version and get jq-1.5-1-a5b5cbe,

Буду признателен за любую оказанную помощь.

2 ответа

Ну вот. Это сработало для меня. Позвольте мне знать, если это помогает.

cat data.json | jq -c '. | {"index": {"_index": "json", "_type": "json"}}, .'  | curl -XPOST localhost:9200/_bulk --data-binary @-

Узнайте больше о jq: легкий и гибкий процессор командной строки JSON.

Мы нашли, что необходимо указать Content-Type в заголовке локона; предлагаемое решение должно иметь форму:

cat data.json | jq -c '. | {"index": {"_index": "json", "_type": "json"}}, .' | curl -H "Content-Type: application/json" -XPOST localhost:9200/_bulk --data-binary @-

Другие вопросы по тегам