2016-07-21 86 views
0

我期待使用彈性搜索的RESTful API將數據發送到我的ES實例。下面是一些示例數據:ElasticSearch API POST/PUT重複數據刪除

[{"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/ 

隨着JSON的有效載荷。

我一直在尋找一個放電話,並嘗試以下操作:

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

從這個文檔:https://www.elastic.co/guide/en/elasticsearch/guide/current/create-doc.html

的問題是,它創建的ID在ES作爲_create有什麼事我做錯了?

回答

1

如果使用POST調用與像/something/quads/網址,然後ES將自動爲您的文檔的ID。

相反,如果你想使用PUT通話,你需要自己提供的文檔ID在URL /something/quads/123/something/quads/456

在你的第二個URL /something/quads/_create,你缺少的文件ID。它應該是/something/quads/123/_create。檢查你已經鏈接到的文檔,你會看到。

還要注意的是以下兩個命令

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

之間的區別在於,如果與ID 123一個文檔已存在第二將會失敗。但是,第一個命令總是會成功並覆蓋文檔ID爲123(如果存在)。

+0

有沒有辦法對JSON記錄本身進行重複數據刪除? – theMadKing

+0

我不知道你的意思。你能解釋一下嗎? – Val