[英]Get all field names in an index elasticsearch python
我正在尝试针对弹性搜索中的所有索引和字段搜索特定字符串。 我能够获取所有索引并针对字符串搜索特定字段。 如何获取特定索引中的字段名称列表?
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']
此代码获取所有索引并检查是否存在具有 textinput 值的字段名称。 理想情况下,我想检查所有领域。 提前致谢!
尝试:
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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.