2015-11-25 25 views
0

我有一个有多个索引的elasticsearch(1.7版)集群。每个索引有多个doc_types,每个索引都有不同类型的字段。我想获得给定字段类型的字段名称列表。这将是一个必然的嵌套列表。例如,我想查询字段类型“string”,并返回{index1:{doc_type1.1:[field1.1.1,field1.1.2],...} - 此嵌套字典的叶子只是那些领域与给定的类型。所以这个查询的命中将不是文档,而是集群映射的一个子集。这可能使用Elasticsearch?Elasticsearch查询哪些字段有给定的类型?

一个解决方案:我知道我可以使用Python将映射作为字典,然后使用映射词典来恢复此嵌套列表。但我认为应该采用弹性搜索的方式来做到这一点,而不是Python解决方案。在我通过文档的搜索中,我只是继续找到按类型过滤的“类型过滤器”,而不是字段类型。

回答

1

目前没有办法实现这一点。 _mapping端点将返回请求映射类型的所有字段。

但是,如果您的字段有一个特殊的命名约定暗示其类型,例如name_str(“name”的字符串字段),age_int(“age”的整数字段)等,可能有一种方法。这种情况下,你可以在电话_mapping使用response filtering和检索只有_str结束字段:

curl -XGET localhost:9200/yourindex/_mapping/yourtype?filter_path=*_str 
+0

嗯,我没有索引什么,只是探索/使用群集,但您的建议是对未来的有用指标。 – travelingbones

相关问题