【发布时间】:2020-05-15 05:46:18
【问题描述】:
我正在尝试实现一个系统,其中一个字段(例如计数)通过更新增加 +1,但应该被限制为最大值为 100。我尝试过谷歌搜索并发现没有。这些更新是否需要通过一个无痛的脚本来完成,也许它会在更新计数之前检查当前值?或者有没有办法elasticsearch可以为这个字段设置一个“最大”约束?
任何答案将不胜感激!
谢谢
【问题讨论】:
标签: database elasticsearch elasticsearch-painless
我正在尝试实现一个系统,其中一个字段(例如计数)通过更新增加 +1,但应该被限制为最大值为 100。我尝试过谷歌搜索并发现没有。这些更新是否需要通过一个无痛的脚本来完成,也许它会在更新计数之前检查当前值?或者有没有办法elasticsearch可以为这个字段设置一个“最大”约束?
任何答案将不胜感激!
谢谢
【问题讨论】:
标签: database elasticsearch elasticsearch-painless
在 Elasticsearch 中,您不能像 SQL 那样定义字段大小或检查约束。
您需要在索引或更新时处理此问题
更新查询
POST <indexname>/_update_by_query
{
"script": {
"source": "if(ctx._source.count==100) return; else ctx._source.count++",
"lang": "painless"
},
"query": { --> to filter docs
"term": {
"id": 2
}
}
}
【讨论】: