我正在后端使用弹性搜索构建一个CMS,我的团队决定使用弹性搜索。我对此很陌生。我主要使用以前项目中的 mongoose 和 mongodb。在 mongodb 中,如果我错误地分配了一个字段或完全跳过了必填字段,mongodb 会抛出错误。
有没有办法在elasticsearch中强制执行必填字段?
没有内置功能允许您在映射中定义必填/强制字段。许多人会建议您在客户端进行检查。
但是,在 Elasticsearch 5.x 中,您可以使用 Ingest 节点来实现这一目的。
您可以使用摄取节点在实际处理之前对文档进行预处理
发生索引。此预处理由摄取节点进行
拦截批量和索引请求,应用转换,
然后将文档传递回索引或批量 API。
要在索引之前预处理文档,您可以定义一个管道
指定一系列处理器。每个处理器都会改变
以某种方式记录。
一个例子,显示了使用这种方法的可能性。
POST _ingest/pipeline/_simulate
{
"pipeline": {
"processors": [
{
"script": {
"lang": "painless",
"inline": "if (ctx.title == null) { throw new Exception('Document does not have the *title* field') }"
}
}
]
},
"docs": [
{
"_index": "index",
"_type": "type",
"_id": "1",
"_source": {
"title": "Elasticsearch 101"
}
},
{
"_index": "index",
"_type": "type",
"_id": "2",
"_source": {
"company": "Elastic"
}
}
]
}
欲了解更多信息,请查看这里 -https://www.elastic.co/guide/en/elasticsearch/reference/5.2/ingest.html https://www.elastic.co/guide/en/elasticsearch/reference/5.2/ingest.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)