首页 文章

Elasticsearch查询哪些字段具有给定类型?

提问于
浏览 1100
0

我有一个带有多个索引的elasticsearch(版本1.7)集群 . 每个索引都有多个doc_types,每个都有各种类型的字段 . 我想获得给定字段类型的字段名称列表 . 这将是一个必然嵌套的列表 . 例如,我想查询字段类型“string”,并返回{index1:{doc_type1.1:[field1.1.1,field1.1.2],...} - 这个嵌套dicts的叶子只是具有给定类型的那些字段 . 因此,此查询的匹配不是文档,而是集群映射的子集 . 这可能使用Elasticsearch吗?

一个解决方案:我知道我可以使用Python将映射作为dict,然后处理映射dict以恢复此嵌套列表 . 但我认为应该有一种弹性搜索方式,而不是Python解决方案 . 在我对文档的搜索中,我只是不断找到按类型过滤的“类型过滤器”,而不是字段类型 .

1 回答

  • 1

    目前无法实现这一目标 . _mapping endpoints 将返回请求映射类型的所有字段 .

    但是,如果您的字段具有暗示其类型的特殊命名约定,可能有一种方法,例如 name_str ("name"的字符串字段), age_int ("age"的整数字段)等 . 在这种情况下,您可以使用response filtering _mapping 调用并仅检索以 _str 结尾的字段:

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

相关问题