elasticsearch - 重新索引和别名 - 避免重复的搜索结果
问题描述
我正在使用一个别名进行搜索,其中一个索引index_1
设置is_write_index
为true
. 由于映射更改,我需要重新索引,这是我的索引过程。
index_2
使用新映射创建新索引- 重新索引
index_1
到index_2
- 添加用于
index_1
to的别名index_2
并is_write_index
设置为true
forindex_2
- 重新索引
index_1
以index_2
同步最新更改 - 删除
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"
}
}
}
}
]
}
完成索引并验证事情后,我可以翻转索引。不确定这是否是最好的解决方案,但它确实有效。
推荐阅读
- typescript - 是否可以在 Typescript 中定义自定义函数类型
- performance - Okhttp 建立数千个客户端连接
- html - 如何在导航下方制作h1文本
- react-native - react-native android 发布环境科学
- macos - 有没有办法将Mac终端环境重置为出厂设置?
- java - 下面的代码只能通过 JMS 调用。修改它,使其也是一个 Web 服务
- javascript - 如何在带参数的函数中设置单个属性 id?
- mysql - 将 csv 文件导入 mysql 服务器,但仅插入第一行并且输入错误
- vue.js - 如何使用 Nuxt.js 扩展根应用程序?
- python - 将多个视频中的帧提取到多个文件夹中