我有一个elasticsearch服务器,我正在使用Jest客户机通过java服务器访问它,我正在寻找每次更新文档多个字段的最佳方法。
到目前为止,我查看了文档,发现有两种方法可以实现:
删除文档并对更新的版本进行索引是最好的方法吗?
在你也打开的github问题中已经回答了这个问题,但再次:
您应该使用您链接的第二种方式(整个文档更新),并且没有专门的API,它只是一个常规的索引请求。因此,您只需根据要更新的文档的ID
发送index
请求即可。
例如,假设以下文档已经在Elasticsearch中索引了索引People
,请键入Food
,id9
:
{"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()
);
我试图更新一个子文档(有效),然后更新除上一个子文档之外的多个子文档。基本上,每次
问题内容: 我正在使用嵌套对象(与该帖子相关的用户)为一组文档建立索引(将它们想象为论坛帖子)。我的问题是用户字段可能已更新,但是由于帖子未更改,因此它们未重新索引,并且用户嵌套的对象已过时。有没有一种方法可以更新嵌套对象,而无需再次为整个文档重新编制索引?还是唯一的解决方案是在用户每次更改时重新索引该用户的所有相关帖子? 问题答案: 您可以使用Update API。 需要注意的是更新脚本支持条件
我想使用mongoose从多个文档更新多个子文档。 我目前的代码是: 模式的一部分是: 但是这段代码只更新id arr中的最后一个元素。
2021-03-10 20:24:23.268调试118757--[main]org.hibernate.sql:更新学生集name=?,team=?,year=?其中UNIQUE_NUMBER=? 我原以为只会发出一个“更新年份”声明,但令我惊讶的是,看起来所有的事情都像一对经典的findOne()/save()操作一样完成了。我错了吗?
更新文档操作既可以完全覆盖现存文档全部字段,又可以部分更新字段(更改现存字段,或添加新字段)。 部分更新 如果你要部分更新文档(如更改现存字段,或添加新字段),你可以在 body 参数中指定一个 doc 参数。这样 doc 参数内的字段会与现存字段进行合并。 $params = [ 'index' => 'my_index', 'type' => 'my_type', 'i
验证后,我试图在/users/处查找用户文档,然后我想使用auth对象中的数据以及一些自定义用户属性更新文档。但我得到一个错误,更新方法不存在。有没有办法更新单个文档?所有firestore文档示例都假定您拥有实际的文档id,并且没有任何示例使用where子句进行查询。