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发送内容的用户调用的?我想拒绝所有不符合限制的文档。必须无法绕过此漏洞。请使用
索引。默认管道
:我不确定恶意用户(->在索引时传递其他管道)是否可以覆盖此漏洞。这是值得测试的。