Ошибка при вставке файла json в aws elasticsearch

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

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

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

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


person Khaned    schedule 01.11.2019    source источник


Ответы (1)


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."}
'

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

person Blokje5    schedule 01.11.2019
comment
Есть ли какая-либо функция для индексации моего файла json в требуемом формате json (с индексированием)? - person Khaned; 02.11.2019