我有一个带有多个索引的elasticsearch(版本1.7)集群 . 每个索引都有多个doc_types,每个都有各种类型的字段 . 我想获得给定字段类型的字段名称列表 . 这将是一个必然嵌套的列表 . 例如,我想查询字段类型“string”,并返回{index1:{doc_type1.1:[field1.1.1,field1.1.2],...} - 这个嵌套dicts的叶子只是具有给定类型的那些字段 . 因此,此查询的匹配不是文档,而是集群映射的子集 . 这可能使用Elasticsearch吗?
一个解决方案:我知道我可以使用Python将映射作为dict,然后处理映射dict以恢复此嵌套列表 . 但我认为应该有一种弹性搜索方式,而不是Python解决方案 . 在我对文档的搜索中,我只是不断找到按类型过滤的“类型过滤器”,而不是字段类型 .
1 回答
目前无法实现这一目标 .
_mapping
endpoints 将返回请求映射类型的所有字段 .但是,如果您的字段具有暗示其类型的特殊命名约定,可能有一种方法,例如
name_str
("name"的字符串字段),age_int
("age"的整数字段)等 . 在这种情况下,您可以使用response filtering_mapping
调用并仅检索以_str
结尾的字段: