2016-03-24 21 views
1

Şu anda windows 10 çalıştırıyorum ve cmd.exe içinde curl_7_47_1_openssl_nghttp2_x64 kullanarak yaşıyorum, elasticsearch'te toplu API kullanarak bir veri girmeyi denediğimde sorunum, her zaman şunu elde ediyorum hata: zaten düzgün toplu API kullanarak veri göndermek için nasıl araştırmışElasticsearch/Curl, Toplu API için yeni satırı okumayacaktır

Validation Failed 1: no requests added, 

(her giriş için yeni bir satır ekleyin) ama cURL sadece benim kırılma hattı deyimi okumayacaktır.

curl -XPOST localhost:9200/customer/external/_bulk?pretty --data-binary "{ \"index\": {\"_id\": \"1\"}} \n { \"name\": \"John Doe\" } \n {\"index\": {\"_id\": \"2\"}} \n {\"name\": \"Jane Doe\" }" 

Ayrıca diğer bilgileri içerir:: cURL pencerelerde tek tırnak okumuyor ve ben JSON çift tırnak kaçmak şöyle My tam komuttur.

Bir dosyada toplu sorgu saklayabilirsiniz:

İki çözüm olabilir

cevap

2

teşekkür ederiz. emin olun:

  • çift tırnak kaçarak DEĞİLDİR da
  • her satırı ( da sonuncusu) bir satır ile biter
  • (DEĞİL satır karakteri \n, ama gerçek bir satır)

bulk.json:

{"index": {"_id": "1"}} 
{"name": "John Doe" } 
{"index": {"_id": "2"}} 
{"name": "Jane Doe" } 

Sonra bu komutu

curl -XPOST localhost:9200/customer/external/_bulk?pretty --data-binary @/path/to/your/file 

diğer çözüm basitçe sahip aynı verileri satır içi ama dosya göndermek için kullanılır yerine --data-binary ait -d parametresi ile göndermektir çalıştırabilirsiniz.

curl -XPOST localhost:9200/customer/external/_bulk?pretty -d " 
{\"index\": {\"_id\": \"1\"}} 
{\"name\": \"John Doe\" } 
{\"index\": {\"_id\": \"2\"}} 
{\"name\": \"Jane Doe\" } 
" 

Yine

+0

teşekkür ederim son satırdan sonra bir yeni satır eklemeyi unutmayın! I ilk denedim ve çalıştı, ikincisi için, cmd.exe inline (newline ???) eklemek nasıl bilmiyorum, ama yine de yardım için teşekkürler! –

+0

Tamam, ilki muhtemelen sizin durumunuzda daha iyi. Memnun kaldım – Val

İlgili konular