2016-07-21 17 views
0

私はElastic Search RESTful APIを使用してESインスタンスにデータを送信したいと考えています。ここではいくつかのサンプルデータがある:JSONペイロードを持つElasticSearch API POST/PUT DeDupe

"http://" + url + "/something/quads/ 

[{"subject":"matt","predicate":"likes","object":"coffee","label":"1_10"}] 
[{"subject":"james","predicate":"likes","object":"water","label":"1_10"}] 
[{"subject":"leo","predicate":"likes","object":"liquor","label":"1_10"}] 
[{"subject":"matt","predicate":"likes","object":"coffee","label":"1_10"}] 
[{"subject":"matt","predicate":"likes","object":"coffee","label":"1_10"}] 

マイポストコールは次のようになります。

私はプット・コールを見ていたし、次のようにしようとしていた

"http://" + url + "/something/quads/_create 

このドキュメントから:https://www.elastic.co/guide/en/elasticsearch/guide/current/create-doc.html

問題は_CREATEは、私は何かがあるので、それはESでIDを作成したことです間違っている?

答えて

1

/something/quads/などのURLでPOST呼び出しを使用すると、ESは自動的にドキュメントのIDを生成します。

場合は、代わりに、あなたはPUTコールを使用したい、あなたはURL /something/quads/123に文書IDを自分で用意する必要があり、/something/quads/456など

2番目のURL /something/quads/_createで、ドキュメントIDを逃しています。それは/something/quads/123/_createである必要があります。もう一度リンクしたドキュメントを確認すると、表示されます。

はまた、2つの次のコマンド

PUT /something/quads/123 
PUT /something/quads/123/_create 

差がID 123持つ文書がすでに存在する場合、第二が失敗することであることに注意します。ただし、最初のコマンドは常に成功し、IDが123の文書を上書きします。

+0

JSONレコード自体にDedupeを行う方法はありますか? – theMadKing

+0

あなたは何を意味するのか分かりません。少し説明できますか? – Val

関連する問題