Назад | Перейти на главную страницу

elasticsearch с использованием массовой вставки для публикации файла JSON

У меня есть следующие Файл JSON

Я использовал awk, чтобы избавиться от пустых пробелов, конечной, следующей строки

awk -v ORS= -v OFS= '{$1=$1}1' data.json

Я добавил запрос на создание в верхней части файла data.json, за которым следует \ n и остальные мои данные.

{"create": {"_index":"socteam", "_type":"products"}} 

Когда я отправляю запрос массовой отправки, я получаю следующую ошибку

CURL -XPUT http://localhost:9200/_bulk

{
  "took": 1,
  "errors": true,
  "items": [
    {
      "create": {
        "_index": "socteam",
        "_type": "products",
        "_id": "AVQuGPff-1Y7OIPIJaLX",
        "status": 400,
        "error": {
          "type": "mapper_parsing_exception",
          "reason": "failed to parse",
          "caused_by": {
            "type": "not_x_content_exception",
            "reason": "Compressor detection can only be called on some xcontent bytes or compressed xcontent bytes"
          }
        }
      }
    }
  ]

Есть идеи, что означает эта ошибка? Я не создавал никаких карт, я использую vanilla elasticsearch

Вот пример полезной нагрузки

cat data.json | awk -v ORS= -v OFS= '{$1=$1}1' | awk -v idx=test -v type=data 'BEGIN{print "{\"create\": {\"_index\":\"" idx "\", \"_type\":\"" type"\"}}"}; {print}; END {printf "\n"}' >> $file
        exit 0
        fi
    fi

Затем я использовал httpie, чтобы отправить файл в es