如何在弹性搜索中强制执行必填字段?

2024-01-03

我正在后端使用弹性搜索构建一个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(使用前将#替换为@)

如何在弹性搜索中强制执行必填字段? 的相关文章

随机推荐

  • 如何在 Tomcat 8.5 中部署 Spring boot 时使用外部配置文件

    我的 Spring Boot 应用程序 2 1 1 RELEASE 作为 WAR 部署在 Debian 9 系统下的 Tomcat 8 5 服务器中 除其他外 它使用以下文件来配置应用程序 myApplication properties
  • 快速滚动带有图像的表格单元格。是这样的吗?

    我尝试使用 Tweetie 的创建者 Loren Brichter 的创建一个快速滚动列表技术 http web archive org web 20100922230053 http blog atebits com 2008 12 fa
  • AWS EBS 卷“使用中 - 优化”

    我有一个 EBS 卷显示 使用中 优化 状态 这是什么意思 AWS正在执行哪些优化 它位于附加到 Windows Server 2012 R2 EC2 实例的 300GB 加密 gp2 卷上 The in use optimizing状态与
  • 将 NLP 转换为 SQL 有哪些方法? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 最近 我们开始研究对话式聊天机器人的想法 并一直在考虑将自然语言查询转换为 SQL 的不同方法 这些是
  • C#,输出多个值的方法

    我正在使用c 我有一个输出多个值的方法 我知道out但这是一个引用类型 是否有与值类型等效的东西 但也可以从方法输出多个值 对于引用类型 值也会在方法之外发生更改 因此我想防止这种情况发生 out 我知道out但这是一个引用类型 不清楚你的
  • Python格式大小应用(将B转换为KB、MB、GB、TB)

    我正在尝试编写一个应用程序来将字节转换为 kb 到 mb 到 gb 到 tb 这是我到目前为止所拥有的 def size format b if b lt 1000 return i b B elif 1000 lt b lt 100000
  • 在 Postgresql 中,如何使用“At Time Zone”取消反转时区偏移

    我正在尝试了解 Postgresql 时区 但我似乎无法弄清楚这一点 EST 是美国的 东部标准时间 通常是UTC 5 http en wikipedia org wiki Eastern Time Zone 示例 1 基础测试 selec
  • QML WebEngineView 轻弹内容

    我正在尝试使用 QML 和 WebEngineView 组件使用 Ubuntu 14 04 制作一个简单的桌面网络浏览器 该应用程序将在带有触摸板的设备上运行 因此最好使 WebEngineView 中显示的内容可滑动 我尝试这样做 但它不
  • 为什么“