如何从Opensearch/ElasticSearch获取唯一字段名(非字段值)
获取OpenSearch/ElasticSearch中的唯一字段名
要从OpenSearch或ElasticSearch里提取唯一字段名,有几种直接可用的方法:
方法1:使用_cat字段API
执行这条命令,能直观看到指定索引的所有字段信息,其中name列就是你要的字段名:
GET /_cat/fields/your_index_name?v
如果要查询所有索引的字段,把your_index_name替换成*即可。返回结果里提取name列的内容,就是全部字段名。
方法2:查询索引的Mapping
通过Mapping查询命令获取索引的字段定义结构:
GET /your_index_name/_mapping
返回的JSON结果中,mappings.properties下的所有键就是字段名。比如返回结构大致如下:
{ "your_index_name": { "mappings": { "properties": { "K1": { ... }, "K2": { ... } } } } }
直接提取properties下的键(比如K1、K2)就是目标字段名。如果要查询多个索引,用逗号分隔索引名,或用*匹配所有索引:
GET /index1,index2/_mapping
字段名去重
如果多个索引存在重复字段名,把收集到的所有字段名做一次去重处理即可,比如用Python、Shell脚本等工具遍历结果完成去重。
内容的提问来源于stack exchange,提问作者namrata jaiswal
相关产品推荐
相关产品推荐

