我希望使用Elastic Search RESTful API将数据发送到我的ES实例。以下是一些示例数据:
[{"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
问题是它在ES中创建了ID作为_create我有什么问题吗?
答案 0 :(得分:1)
如果您使用/something/quads/
之类的网址进行POST调用,则ES会自动为您的文档生成ID。
如果您想要使用PUT调用,则需要在网址/something/quads/123
,/something/quads/456
等中自行提供文档ID。
在您的第二个网址/something/quads/_create
中,您错过了文档ID。它应该是/something/quads/123/_create
。检查您再次链接到的文档,然后您就会看到。
另请注意以下两个命令之间的区别
PUT /something/quads/123
PUT /something/quads/123/_create
如果已存在ID为123
的文档,则第二个将失败。但是,第一个命令将始终成功并覆盖标识为123
的文档(如果存在)。