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