如何在Kibana控制台实现特定条目与Elasticsearch keyword的关联映射?
可行,具体实现分两种场景操作
场景1:目标索引尚未创建
直接在创建索引时定义字段的keyword类型映射,在Kibana控制台执行以下命令:
PUT /your_index_name { "mappings": { "properties": { "your_target_field": { "type": "keyword" } } } }
替换your_index_name为你的索引名,your_target_field为要设置成keyword类型的字段名。
场景2:目标索引已存在
Elasticsearch不允许直接修改已有字段的类型,但可以通过两种方式实现需求:
方式1:添加新的keyword类型字段
如果不想修改原有字段,新增一个keyword类型的字段来关联目标条目,执行命令:
PUT /your_index_name/_mapping { "properties": { "new_keyword_field": { "type": "keyword" } } }
之后可通过数据同步或更新操作,把目标条目的值写入这个新字段。
方式2:给已有文本字段添加keyword子字段
如果原有字段是text类型,可以添加一个keyword子字段,既保留文本检索能力,又能获得keyword类型的精确匹配能力:
PUT /your_index_name/_mapping { "properties": { "existing_text_field": { "type": "text", "fields": { "keyword": { "type": "keyword", "ignore_above": 256 } } } } }
替换existing_text_field为你的已有文本字段名,后续查询时可用existing_text_field.keyword引用这个keyword子字段。
注意事项
- 若必须修改已有字段的类型,只能重新创建索引并设置正确映射,再将原索引的数据重新导入新索引。
- 执行所有命令前,确保你拥有对应索引的修改权限。
内容的提问来源于stack exchange,提问作者user19435923
相关产品推荐
相关产品推荐

