我有一个弹性搜索服务器,我正在使用Jest客户端通过java服务器访问,我正在寻找每次更新文档的多个字段的最佳方法。
到目前为止,我已查看过文档,我发现有两种方法可以实现:
我的问题是如何知道Jest只通过脚本提供更新来更新整个文档?
这是删除文档和索引更新版本的最佳方法吗?
提前致谢,
答案 0 :(得分:4)
在github问题中已经回答了这个问题,你又开了一次:
您应该使用链接的第二种方式(整个文档更新),并且没有特殊的API,它只是一个常规的索引请求。因此,您只需针对要更新的文档的Index
发送id
请求即可。
例如,假设您已在索引people
内的Elasticsearch中编入索引以下文档,请键入food
,id 9
:
{"user": "kramer", "fav_food": "jello"}
然后你会这样做:
String source = "{\"user\": \"kramer\", \"fav_food\": \"pizza\"}";
JestResult result = client.execute(
new Index.Builder(source)
.index("people")
.type("food")
.id(9)
.build()
);