gpt4 book ai didi

elasticsearch - 如何在 Elasticsearch 中强制执行必填字段?

转载 作者:行者123 更新时间:2023-12-04 05:32:46 26 4
gpt4 key购买 nike

我正在后端使用 Elasticsearch 构建一个 cms,我的团队决定使用 Elasticsearch 。我是新手。我主要在以前的项目中使用 mongoose 和 mongodb。在 mongodb 中,如果我错误地分配了一个字段或完全跳过了一个必填字段,mongodb 会抛出错误。

有没有办法在 elasticsearch 中强制执行必填字段?

最佳答案

没有内置功能,这将允许您在映射中定义必填/必填字段。许多人会建议您在客户端进行检查。

但是,在 Elasticsearch 5.x 中,您可以使用 Ingest 节点来实现这一点。

You can use ingest node to pre-process documents before the actual indexing takes place. This pre-processing happens by an ingest node that intercepts bulk and index requests, applies the transformations, and then passes the documents back to the index or bulk APIs.

To pre-process documents before indexing, you define a pipeline that specifies a series of processors. Each processor transforms the document in some way.



一个例子,显示了使用这种方法的可能性。
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

关于elasticsearch - 如何在 Elasticsearch 中强制执行必填字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42928101/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com