如何根据 Elasticsearch 映射验证文档而不用 Python 对其进行索引?

问题描述 投票:0回答:1

我正在 Python 中使用 Elasticsearch,我有一个场景,我想在实际发送文档进行索引之前根据现有索引的映射验证文档。目标是确保文档遵循映射中定义的预期字段类型和约束。

例如,给定自定义索引的以下映射:

"mappings": {
 "properties": {
  "title": { "type": "text" },
  "publish_date": { "type": "date" },
  "views": { "type": "integer"}
 }
}

我想验证以下文件:

{
"title": "Sample Article",
"publish_date": "2023-10-05",
"views": 1234
}

例如,如果视图错误地是字符串而不是整数,则获得反馈。

我知道我可以编写自定义验证逻辑来实现此目的,但我正在寻找更简化的解决方案,可能是可以开箱即用地处理此问题的库或工具。

有人遇到过提供此功能的 Python 库或工具吗?或者是否有推荐的方法来实现此目的,而无需手动解析映射并验证每个字段?

python elasticsearch mapping elastic-stack elasticsearch-py
1个回答
1
投票

您可能不希望一方面在 Elasticsearch 中管理索引映射,另一方面在 Python 代码中“复制/粘贴”相同的规则。从长远来看,这注定会失败!

您可能正在寻找类似 Pydantic介绍文章)之类的东西,它允许您直接从 Python 代码验证规则驱动索引映射创建。

© www.soinside.com 2019 - 2024. All rights reserved.