elasticsearch Elasticsearch:在映射中定义字段词汇表,elasticsearch,mapping,data-modeling,elasticsearch,Mapping,Data Modeling" /> elasticsearch Elasticsearch:在映射中定义字段词汇表,elasticsearch,mapping,data-modeling,elasticsearch,Mapping,Data Modeling" />

elasticsearch Elasticsearch:在映射中定义字段词汇表

elasticsearch Elasticsearch:在映射中定义字段词汇表,elasticsearch,mapping,data-modeling,elasticsearch,Mapping,Data Modeling,是否有方法(在映射中)为字段定义一组可能的值 下面我举了一个例子,说明它是如何在语法上实现的——这并不是说它是可能的 "mappings": { "properties": { "from_ID": { "type": "keyword" }, "to_ID": { &quo

是否有方法(在映射中)为字段定义一组可能的值

下面我举了一个例子,说明它是如何在语法上实现的——这并不是说它是可能的

"mappings": {
    "properties": {
        "from_ID": {
            "type": "keyword"
        },
        "to_ID": {
            "type": "keyword"
        },
        "property": {
            "type": "keyword",
            "values": ["a","b","c"]
        }
    }
}

正如您已经猜到的,管道将起到作用。最简单的版本可能是:

PUT _ingest/pipeline/enforce_abc
{
  "description": "Enforces a, b, or c in 'property'",
  "processors": [
    {
      "drop": {
        "if" : "ctx.property == null || !['a', 'b', 'c'].contains(ctx.property)"
      }
    }
  ]
}

你想达到什么目标?和枚举一样,确保只有那些值在该字段中结束?最适合您需要的类型是,但它只接受一个值。我想所有这些东西都需要在摄取管道中制定?是的,您可能会劫持摄取管道来完成这项工作。但这是由向REST-API发送内容的用户调用的?我想拒绝所有不符合限制的文档。必须无法绕过此漏洞。请使用
索引。默认管道
:我不确定恶意用户(->在索引时传递其他管道)是否可以覆盖此漏洞。这是值得测试的。