elasticsearch - 重新索引 Elasticsearch,忽略不在映射中的字段
问题描述
尝试在 elasticsearch 中测试重新索引 API 并遇到现有数据包含新索引严格映射中不存在的字段的问题。有没有办法告诉elasticsearch简单地忽略这些字段并继续?
编辑:为了澄清,忽略我的意思是在重新索引过程中不包括这些字段。
解决方案
如果您在运行之前可以访问索引设置,reindex
则可以执行以下操作:
PUT test/_mapping
{
"dynamic": "false"
}
然后将其更改回strict
重新索引完成后。
根据您的评论更新
POST _reindex
{
"source": {
"index": "src"
},
"dest": {
"index": "dst"
},
"script": {
"lang": "painless",
"source": """
ctx['_source'].remove('email');
ctx['_source'].remove('username');
ctx['_source'].remove('name');
// removing from nested:
for(item in ctx['_source'].Groups){
item.remove('GroupName');
item.remove('IsActive');
}
"""
}
}
推荐阅读
- javascript - 在 Javascript 中使用正则表达式进行电子邮件修复验证
- python - 如何使按钮不在列表中
- command-line - 向 Brother VC-500w 发送 ESC/P cut 命令
- css - 我需要帮助将我的页脚更新为底部固定而不重叠我的左手导航栏
- java - 我如何将双打四舍五入到三分之二?
- linux - 在 GNU 并行中链接作业
- karate - 空手道框架 - 如何在 karate-config.js 文件的一个变量中设置多个 api 请求标头详细信息
- r - 尝试使用 R 通过 ID 识别连续购买的数量
- python - Python函数在return语句后继续运行?
- html - Flip-Card CSS/HTML:翻转时卡片背面不显示