如何在Kibana Dev Tools创建Elasticsearch索引并设置not-analyzed字段
Elasticsearch 索引创建及字段设为不解析操作步骤
版本适配说明
Elasticsearch 5.x及后续版本已废弃not_analyzed参数,文本字段不做分词解析请使用keyword类型,仅2.x及更早的旧版本需要使用not_analyzed配置。
操作流程
- 打开Kibana左侧导航栏的「Dev Tools」,进入Console控制台
- 在控制台左侧输入区域编写带Mapping定义的PUT请求,以下为不同场景的示例代码:
场景1:ES 5.x及以上版本,字段仅需要不解析的精确匹配
PUT /myNewIndexName { "mappings": { "properties": { // 此处可填写其他字段的属性定义 "your_text_field": { "type": "keyword" } } } }
点击运行按钮即可完成索引创建,your_text_field字段默认不会做分词处理,仅支持完全匹配查询。
场景2:ES 2.x及更早旧版本兼容写法
PUT /myNewIndexName { "mappings": { "_default_": { "properties": { "your_text_field": { "type": "string", "index": "not_analyzed" } } } } }
场景3:同一字段同时支持分词搜索和精确匹配
如果需要字段同时支持全文分词检索、以及不解析的精确匹配/聚合操作,可以配置多字段属性:
PUT /myNewIndexName { "mappings": { "properties": { "your_text_field": { "type": "text", // 用于分词全文检索 "fields": { "keyword": { "type": "keyword", // 用于精确匹配,等价于原not_analyzed效果 "ignore_above": 256 } } } } } }
使用时,your_text_field对应分词检索能力,your_text_field.keyword对应精确匹配能力。
内容的提问来源于stack exchange,提问作者codeKnight
相关产品推荐
相关产品推荐

