使用摄取管道在两个索引之间进行分割



我有包含字段" status "的文档,它可以有三个值" draft "; " In progress ";或" approved "。我试图通过摄取管道传递此文档,如果状态等于"已批准";那么它应该将其添加到B索引中,而默认情况下,无论状态值如何,它都应该索引到A索引中。For ex -1 .

{
"id":"123",
"status":"Draft"
}
  • {
    "id":"1234",
    "status":"InProgress"
    }
    
  • {
    "id":"12345",
    "status":"Approved"
    }
    

    1、2、3文档应该到A索引,只有文档3应该到B索引有可能通过摄取管道来实现吗?

    在您的摄取管道中,您可以像这样非常容易地更改_index字段:

    {
    "set": {
    "if": "ctx.status == 'Approved'",
    "field": "_index",
    "value": "index-b"
    }
    },
    {
    "set": {
    "if": "ctx.status != 'Approved'",
    "field": "_index",
    "value": "index-a"
    }
    }
    

    但是,不能将一个文档发送到两个不同的索引,这是没有价值的。在同一管道中,要么是index-a,要么是index-b,但不能两者都是。

    然而,这可以很容易地解决,通过跨index-aindex-b的别名查询两个索引

    最新更新