获取索引elasticsearch python中的所有字段名称

Phi*_*ath 2 python elasticsearch

我正在尝试针对弹性搜索中的所有索引和字段搜索特定字符串。我能够获取所有索引并针对字符串搜索特定字段。如何获取特定索引中的字段名称列表?

    def check_name_query(self):
    es = Elasticsearch("http://localhost:9200")
    indexlist = es.indices.get_alias()
    print "indices:", indexlist
    text_val = self.textin.text
    for ind in es.indices.get('*'):
        print ind
        res = es.search(index=ind, body={'query': {'wildcard': {'name': "*" + text_val + "*"}}})
        print res['hits']['hits']
Run Code Online (Sandbox Code Playgroud)

此代码获取所有索引并检查是否存在具有 textinput 值的字段名称。理想情况下,我想检查所有领域。提前致谢!

Lup*_*ide 5

尝试:

from elasticsearch import Elasticsearch

es = Elasticsearch()
indices_names = []
for elem in es.cat.indices(format="json"):
    indices_names.append( elem['index'] )

dict_index_fields = {}

for index in indices_names: 
    mapping = es.indices.get_mapping(index)
    dict_index_fields[index] = []
    for field in mapping[index]['mappings']['properties']:
        dict_index_fields[index].append(field) 
Run Code Online (Sandbox Code Playgroud)