elasticsearch - 如何更新 Elasticsearch 文档中的单个属性
问题描述
如何更新 Elasticsearch 文档中的单个属性。这就是我们现在正在做的事情,不确定它是否完全线程安全,因为我们看到它有时会失败
Profile profile = profileRepository.findById(id);
profile.setStatus(status);
profileRepository.save(profile)
解决方案
Spring Data Elasticsearch 可能已经为您做到了。您可以通过启用 Spring Data Elasticsearch 的日志记录来检查这一点,并检查发送到 Elasticsearch 的内容。一般来说,Spring Data 会跟踪您对会话对象所做的更改。
另一种方法是使用@Query
注释(代码未经测试/验证)
@Query("update Profile set Profile.status = :status)
void updateProfile(String status);
如果这不起作用,您可以使用 Java REST 高级客户端的更新 API https://www.elastic.co/guide/en/elasticsearch/client/java-rest/master/java-rest-high-document-更新.html
推荐阅读
- cocotb - cocotb示例代码开始工作的问题
- ruby - 保存禁止对列表的最有效数据结构
- python - status": 500, "body": "HTTP Error 400: Invalid URI: isHexDigit" 同时使用 skimage 将 s3 上的图像下载到本地
- javascript - 使用 django 将来自数组的数组中的数据传递给 chartjs
- php - php解析多级 - xml到数组
- ios - 如何在原生 iOS 文件应用程序中创建 ContextMenu 动画?
- javascript - Express:解析传递给 ejs 文件的解析对象的最安全方法:
- .net-core - 在本地调试 C# Azure 函数时静默终止进程
- css - React:sass-loader 没有将 SCSS 转换为 CSS
- javascript - 我可以将 .js 文件内容(或代码)导入 gatsby 中的 mdx 吗?