gpt4 book ai didi

spring - 通过使用Spring Data Elasticsearch查询多个字段来更新?

转载 作者:行者123 更新时间:2023-12-03 01:15:57 28 4
gpt4 key购买 nike

我想更新所有具有相同名称的文档。我在elasticsearch文档中看到可以使用_update_by_query。所以我试图像这样在我的仓库中实现它:

@Query("{\"script\": { \"inline\": \"ctx._source.name = ?1\"; \"ctx._source.username = ?2\"; \"ctx._source.avatar = ?3\", \"lang\": \"painless\" }, \"query\": { \"match\": { \"name\" : \"?1\" }}")
List<User> update(String name, String username, String avatar);
但是我收到以下错误:
nested exception is ElasticsearchStatusException[Elasticsearch exception [type=parsing_exception, reason=[script] query does not support [inline]]]
at org.springframework.kafka.listener.SeekUtils.seekOrRecover(SeekUtils.java:157) ~[spring-kafka-2.5.0.RELEASE.jar:2.5.0.RELEASE]

最佳答案

编辑26.06.2020:
这个答案不正确,我加了一个正确的。
旧的错误答案:
对我来说似乎很奇怪,这个错误来自org.springframework.kafka.listener.SeekUtils
要使用脚本进行更新,可以使用update(UpdateQuery updateQuery, IndexCoordinates index)实例的ElasticsearchOperations
要在存储库中拥有此文件,您将需要创建一个存储库自定义项,例如described here。在实现中, Autowiring ElasticsearchOperations实例。在此定制存储库界面中,您可以定义方法

List<User> update(String name, String username, String avatar);
在实现中,使用脚本和其他信息构建 UpdateQuery对象,并将其传递给 ElasticsearchOperations实例。

关于spring - 通过使用Spring Data Elasticsearch查询多个字段来更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62564829/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com