【问题标题】:Elasticsearch max constraint on integer field?Elasticsearch对整数字段的最大约束?
【发布时间】:2020-05-15 05:46:18
【问题描述】:

我正在尝试实现一个系统,其中一个字段(例如计数)通过更新增加 +1,但应该被限制为最大值为 100。我尝试过谷歌搜索并发现没有。这些更新是否需要通过一个无痛的脚本来完成,也许它会在更新计数之前检查当前值?或者有没有办法elasticsearch可以为这个字段设置一个“最大”约束?

任何答案将不胜感激!

谢谢

【问题讨论】:

    标签: database elasticsearch elasticsearch-painless


    【解决方案1】:

    在 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
        }
      }
    }
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-19
      相关资源
      最近更新 更多