我正在尝试建立一个系统,其中一个字段(例如count)通过更新来增加+1,但应该限制为最大值,例如100。我尝试使用Google搜索,发现没有。这些更新是否需要通过一个轻松的脚本来完成,也许该脚本将在更新计数之前检查当前值?还是有办法让Elasticsearch对该字段采取“最大”约束?
任何答案将不胜感激!
谢谢
我正在尝试建立一个系统,其中一个字段(例如count)通过更新来增加+1,但应该限制为最大值,例如100。我尝试使用Google搜索,发现没有。这些更新是否需要通过一个轻松的脚本来完成,也许该脚本将在更新计数之前检查当前值?还是有办法让Elasticsearch对该字段采取“最大”约束?
任何答案将不胜感激!
谢谢
在Elasticsearch中,您无法定义字段大小或SQL之类的Check约束。
您需要在编制索引或更新时进行处理
更新查询
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
}
}
}