2017-02-21 7 views
0

インデックス呼び出しを実行すると、同じIDの文書がすでに存在する場合に呼び出しを失敗させる方法はありますか?ElasticSearch C#NEST - 文書を上書きしないようにする方法

警告が発行されていますが、元の文書はまだ上書きされています。

+0

質問に間違いがあったことを知るには、downvoteにコメントを付けると非常に役に立ちます。 – Thomas

答えて

1

あなたは_createエンドポイントを使用することによって、またはOpType.Createを指定することでこれを達成することができ、文書

var client = new ElasticClient(); 

// using OpType.Create 
client.Index(new Test { Id = 1, Message = "message 1" }, i => i 
    .OpType(OpType.Create) 
); 

// using _create endpoint 
client.Create(new Test { Id = 1, Message = "message 1" }); 

のインデックスを作成する際に文書がすでに存在する場合は、HTTP 409競合応答が返されます。いずれの場合も、索引作成/作成中の文書のIDが必要です。

+0

すでに存在するドキュメントをスキップするIndexManyに類似したものはありますか? – Thomas

+0

スキップしませんが、409を返します。 'IndexMany'は公開する' _bulk' APIの便利な部分です。一括作成、更新、インデックス、および削除操作があります。さまざまな操作の例については、Bulk APIテストをご覧ください:https://github.com/elastic/elasticsearch-net/blob/5.x/src/Tests/Document/Multiple/Bulk/BulkApiTests.cs#L74-L89 –

関連する問題