Ошибка при вставке файла JSON в AWSasticsearch - PullRequest
0 голосов
/ 01 ноября 2019

У меня небольшой файл json, я использую экземпляр t2 вasticsearch, но я не могу вставить данные в awsasticsearch

мой файл выглядит следующим образом

[{"Company_Name": "11 plc (NGSE:MOBIL)", "Business_Description": "11 plc markets petroleum products in Nigeria."}, {"Company_Name": "3Power Energy Group, Inc. (OTCPK:PSPW)", "Business_Description": "3Power Energy Group, Inc. focuses on developing, building, and operating power plants."}, {"Company_Name": "4Sight Holdings Limited (JSE:4SI)", "Business_Description": "4Sight Holdings Limited, through its subsidiaries, provides technology support solutions across various industries in Mauritius."}, {"Company_Name": "A'ayan Leasing and Investment Company K.S.C.P. (KWSE:AAYAN)", "Business_Description": "A'ayan Leasing and Investment Company K.S.C.P. engages in financial investments, trading and investing in properties"}]

Я пыталсяиспользуя следующую команду

curl -s -XPOST https://elasticsearchdomain/_bulk?pretty -H "Content-Type: application/x-ndjson" --data-binary '@data.json'

Я получаю ошибку статуса 400

{
  "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
}

что я делаю не так?

1 Ответ

1 голос
/ 01 ноября 2019

Bulk API в Elastic Search не делает то, что вы ожидаете. Массовый API используется для выполнения нескольких операций (например, индексирование, обновление, удаление) за один вызов API. Таким образом, вы должны указать конкретный тип операции, которую вы хотите выполнить. В этом случае вы хотите проиндексировать несколько документов:

curl -X POST "localhost:9200/_bulk?pretty" -H 'Content-Type: application/json' -d'
{ "index" : { "_index" : "myindex", "_id" : "1" } }
{"Company_Name": "11 plc (NGSE:MOBIL)", "Business_Description": "11 plc markets petroleum products in Nigeria."}
{ "index" : { "_index" : "myindex", "_id" : "2" } }
{"Company_Name": "3Power Energy Group, Inc. (OTCPK:PSPW)", "Business_Description": "3Power Energy Group, Inc. focuses on developing, building, and operating power plants."}
'

Таким образом, для каждого документа вы указываете операцию (в данном случае индекс), завершаете операцию новой строкой, а затем снова указываете документ (завершается новой строкой).

...