Python 如何向elasticsearch现有映射添加新字段并设置值?
如何将新字段添加到现有弹性搜索映射。我想将该字段设置为默认值。如何执行此操作?我找到了使用kibana查询的解决方案,您可以使用它。有两个步骤。第一个添加了新字段。第二个是更新字段值。也可以使用索引前缀Python 如何向elasticsearch现有映射添加新字段并设置值?,python,
elasticsearch,kibana,Python,
elasticsearch,Kibana,如何将新字段添加到现有弹性搜索映射。我想将该字段设置为默认值。如何执行此操作?我找到了使用kibana查询的解决方案,您可以使用它。有两个步骤。第一个添加了新字段。第二个是更新字段值。也可以使用索引前缀 # First step >> add new field to mapping PUT <index_name or prefix>/_mapping/<Document-type> { "properties": {
# First step >> add new field to mapping
PUT <index_name or prefix>/_mapping/<Document-type>
{
"properties": {
"source": {
"type": "<field type>"
}
}
}
# Second step is add default values to field
POST /<index name or prefix>/_update_by_query
{
"script": {
"source": "ctx._source.source = 'Hi... .'",
"lang": "painless"
},
"query": {
"match_all": {}
}
}
#第一步>>向映射添加新字段
PUT/_映射/
{
“财产”:{
“来源”:{
“类型”:”
}
}
}
#第二步是向字段添加默认值
POST/\u按查询更新\u
{
“脚本”:{
“source”:“ctx.\u source.source='Hi….'”,
“郎”:“无痛”
},
“查询”:{
“全部匹配”:{}
}
}
可以,但您有多少文档?通过查询matchall更新数百万个文档可能很危险。mmm。我有大约100000或200000份文件。但它正在工作,所以我们可以使用搜索查询过滤文档数。无论如何,需要考虑数百万文档会发生什么情况。:)谢谢如果你更新所有文档,最好重新编制索引(更新几乎会删除-添加),重新编制索引会更好。是的,我起诉它更新所有文档根据Es()重新编制所有文档是最佳做法。发布{“源”:{“索引”:“推特”},“目的地”:{“索引”:“新推特”,“版本类型”:“外部”},“脚本”:{“源”:“ctx.\u source.source='Hi….'”,“lang”:“无痛”}