2016-07-21 87 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