重新索引并避免重复的搜索结果



我使用一个别名进行搜索,其中一个索引index_1is_write_index设置为true。由于映射的变化,我需要重新索引,这是我的索引过程。

  1. 使用新映射创建新索引index_2
  2. index_1重新索引为index_2
  3. index_1中使用的别名添加到index_2index_2is_write_index设置为true
  4. 重新索引index_1index_2以同步最新更改
  5. 删除index_1

我遇到的问题是,从步骤3开始,对别名的查询返回重复的结果。如何避免这个问题?

找到了答案,我找到的短期解决方案是在设置别名时使用过滤器来过滤index_2中的重复结果。例如。

POST /_aliases
{
"actions": [
{
"add": {
"index": "index_1",
"alias": "aliasName",
"is_write_index": true
}
},
{
"add": {
"index": "index_2",
"alias": "aliasName",
"filter": {
"term": {
"myGuaranteedToExistField": "impossibleToFindValue"
}
}
}
}
]
}

当索引完成并且事情得到验证时,我可以翻转索引。虽然不确定这是否是最好的解决方案,但它确实有效。

相关内容

  • 没有找到相关文章

最新更新