Массовый запрос на ElasticSearch возвращает сообщение «Массовый запрос должен быть завершен новой строкой» - PullRequest
0 голосов
/ 04 апреля 2019

Мне известно, что в StackOverflow уже есть похожие вопросы, но ни один из них не решает мою текущую проблему.

Я использую ElasticSearch 6.7.0, и в настоящее время я работаю над его учебником. В настоящее время я застрял на этом шаге , что требует от меня загрузки некоторых примеров данных, хранящихся в файле accounts.json. Вот небольшой фрагмент файла:

{"index":{"_id":"988"}}
{"account_number":988,"balance":17803,"firstname":"Lucy","lastname":"Castro","age":34,"gender":"F","address":"425 Fleet Walk","employer":"Geekfarm","email":"lucycastro@geekfarm.com","city":"Mulino","state":"VA"}
{"index":{"_id":"990"}}
{"account_number":990,"balance":44456,"firstname":"Kelly","lastname":"Steele","age":35,"gender":"M","address":"809 Hoyt Street","employer":"Eschoir","email":"kellysteele@eschoir.com","city":"Stewartville","state":"ID"}
{"index":{"_id":"995"}}
{"account_number":995,"balance":21153,"firstname":"Phelps","lastname":"Parrish","age":25,"gender":"M","address":"666 Miller Place","employer":"Pearlessa","email":"phelpsparrish@pearlessa.com","city":"Brecon","state":"ME"}

Файл сохраняется внутри пути C:\Users\Me\Desktop\accounts.json.

Я выполнил следующую команду, , как указано в руководстве :

PS C: \ Users \ Me \ Downloads \ curl-7.64.1-win64-mingw \ bin>. \ Curl.exe -H «Тип контента: приложение-хост: 9200 / bank / _doc / _bulk? Pretty & refresh» --data-binary "C: \ Users \ Me \ Desktop \ accounts.json"

Я получил это сообщение об ошибке:

{
  "error" : {
    "root_cause" : [
      {
        "type" : "illegal_argument_exception",
        "reason" : "The bulk request must be terminated by a newline [\n]"
      }
    ],
    "type" : "illegal_argument_exception",
    "reason" : "The bulk request must be terminated by a newline [\n]"
  },
  "status" : 400
}

Чтобы это исправить, я пошел в конец файла и вставил новую строку, нажав Enter. Однако то же сообщение об ошибке появилось, когда я снова запустил команду.

Как я могу исправить эту проблему?

Ответы [ 2 ]

1 голос
/ 04 апреля 2019

Используйте «@C: \ Users \ Me \ Desktop \ accounts.json» вместо «C: \ Users \ Me \ Desktop \ accounts.json»

т.е.

\curl.exe -H "Content-Type: applicati lhost:9200/bank/_doc/_bulk?pretty&refresh" --data-binary "@C:\Users\Me\Desktop\accounts.json"
1 голос
/ 04 апреля 2019

Я переместил файл accounts.json в тот же каталог, из которого запускаю curl.exe, и выполнил эту команду:

. \ Curl.exe -H "Content-Type: Applicatilhost: 9200 / bank / _doc / _bulk? pretty & refresh "--data-binary" @ accounts.json "

На этот раз массовый запрос был успешным.

Для тех, кто сталкиваетсяаналогичные проблемы, не забудьте вставить новую строку в конец файла, нажав Enter.Если это не сработает, попробуйте переместить файл в другой каталог.Сообщение об ошибке «Массовый запрос должен быть завершен новой строкой» может быть вводить в заблуждение - ваш файл может быть вообще не отформатирован;возможно, он просто не может быть найден или доступен по различным причинам.

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