2016-12-29 4 views
1

バルク操作を弾性検索でバルク操作を実行しようとしています。ただし、の最後の操作は、JSONで指定されたものは、弾性検索によって決して実行されません。弾性検索バルクは、jsonで提供されている最後の操作を無視しています。

これは私の要求です(私のシナリオでは

{ 
    "took": 100, 
    "errors": false, 
    "items": [ 
    { 
     "update": { 
     "_index": "customer", 
     "_type": "external", 
     "_id": "1", 
     "_version": 9, 
     "result": "noop", 
     "_shards": { 
      "total": 2, 
      "successful": 1, 
      "failed": 0 
     }, 
     "status": 200 
     } 
    }, 
    { 
     "delete": { 
     "found": true, 
     "_index": "customer", 
     "_type": "external", 
     "_id": "4", 
     "_version": 4, 
     "result": "deleted", 
     "_shards": { 
      "total": 2, 
      "successful": 1, 
      "failed": 0 
     }, 
     "status": 200 
     } 
    }, 
    { 
     "index": { 
     "_index": "customer", 
     "_type": "external", 
     "_id": "3", 
     "_version": 7, 
     "result": "updated", 
     "_shards": { 
      "total": 2, 
      "successful": 1, 
      "failed": 0 
     }, 
     "created": false, 
     "status": 200 
     } 
    }, 
    { 
     "create": { 
     "_index": "customer", 
     "_type": "external", 
     "_id": "4", 
     "_version": 5, 
     "result": "created", 
     "_shards": { 
      "total": 2, 
      "successful": 1, 
      "failed": 0 
     }, 
     "created": true, 
     "status": 201 
     } 
    } 
    ] 
} 

顧客IDを持つ "5":レスポンスはわずか4出力の代わりに、5が含まれています

curl -XPOST 'localhost:9200/customer/external/_bulk?pretty&pretty' -d' 

{"update":{"_id":"1"}} 
{"doc": { "name": "Update - John Doe becomes Jane Doe" } } 

{"delete":{"_id":"4"}} 

{"index":{"_id":"3"}} 
{"name": "Create or Update - New Jane Doe" } 

{"create":{"_id":"4"}} 
{"name": "Only Create - New Jane Doe" } 

{"create":{"_id":"5"}} 
{"name": "Only Create - New Jane Doe 1" }' 

名前: "Create Only - New Jane Doe 1")は作成されませんでした。この最後のリクエスト(id:5)を削除すると、id:4も作成されません。

私は顧客インデックスのすべてのドキュメントを取得するために検索しましたが、ID:5は存在しませんでした。

あたかもElastic検索がJSONの最後の部分を無視しているかのようです。私はさらにPostmanClientを介して依頼を投稿しようとしましたが、依然として同じです。

弾性検索バージョン:JSONは常に改行文字(\ n)がで終わらなければなりませんようにhereを説明するように5.1.1

+0

わかりません。curl -XPOST 'localhost:9200/customer/external/_bulk?pretty = true' -d – Lax

答えて

1

が見えます。

JSONの最後に新しい行が追加され、正常に動作しました。

関連する問題