我有包含字段" 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-a
和index-b
的别名查询两个索引