Solución:
El comando correcto si desea usar un archivo con curl es este:
curl -XPOST 'http://jfblouvmlxecs01:9200/test/_doc/1' -d @lane.json
Elasticsearch no tiene esquema, por lo que no necesariamente necesita un mapeo. Si envía el json tal como está y usa el mapeo predeterminado, todos los campos se indexarán y analizarán con el analizador estándar.
Si desea interactuar con Elasticsearch a través de la línea de comandos, es posible que desee echar un vistazo a elasticshell, que debería ser un poco más útil que curl.
2019-07-10: Debe tenerse en cuenta que los tipos de mapeo personalizados están en desuso y no deben usarse. Actualicé el tipo en la URL anterior para que sea más fácil ver cuál era el índice y cuál era el tipo, ya que tener ambos nombres “prueba” era confuso.
Según los documentos actuales, https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html:
Si está proporcionando entrada de archivo de texto a curl, debe usar la marca –data-binary en lugar de simple -d. Este último no conserva nuevas líneas.
Ejemplo:
$ curl -s -XPOST localhost:9200/_bulk --data-binary @requests
Hicimos una pequeña herramienta para este tipo de cosas https://github.com/taskrabbit/elasticsearch-dump