我正在为每个用户使用别名。对于每个别名,我正在关联routing
和filter
:
PUT _/<index>/_alias/u1@u1.com'
{
"routing": "u1@u1.com",
"filter": {
"term": {
"user": "u1@u1.com"
}
}
}
所以,我正在设置索引并且搜索正在使用routing
信息。
我想使用_reindex
api重新索引另一个索引上的所有文档。创建新索引后,我创建了所有别名。因此,我发现必须使用别名对文档进行重新索引才能保留路由策略。
有没有办法在_reindex
设置它?
示例:
POST _/_reindex
{
"source": {
"index": "old"
},
"dest": {
"index": "new"
}
}
'
有什么想法吗?
答案 0 :(得分:1)
是的,你可以:
POST _reindex
{
"source": {
"index": "old",
"query": {
"term": {
"user": "u1@u1.com"
}
}
},
"dest": {
"index": "new",
"routing": "=u1@u1.com"
}
}
答案 1 :(得分:0)
默认情况下,如果
_reindex
看到包含路由的文档,则路由将被保留,除非脚本更改了该路由。
所以,到目前为止,我已经能够确定每个已经保存了routing
信息的文档。