1. 程式人生 > >python Elasticsearch5.x使用

python Elasticsearch5.x使用

hcl param itl out key str ram 統計 bject

python Elasticsearch5.x使用

文檔:http://elasticsearch-py.readthedocs.io/en/master/

Elasticsearch官方API文檔:https://www.elastic.co/guide/en/elasticsearch/reference/current/search.html

兩種方式現實Elasticsearch API操作

方式一:安裝elasticsearch模塊,通過它操作Elasticsearch,代碼示例如下

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 """ pip install elasticsearch """ from elasticsearch import Elasticsearch class ElasticSearchClass(object): def __init__(self, host, port, user, passwrod): self.host = host self.port = port self.user = user self.password = passwrod self.connect()
def connect(self): self.es = Elasticsearch(hosts=[{‘host‘: self.host, ‘port‘: self.port}], http_auth=(self.user, self.password )) def count(self, indexname): """ :param indexname: :return: 統計index總數 """ return
self.es.count(index=indexname) def delete(self, indexname, doc_type, id): """ :param indexname: :param doc_type: :param id: :return: 刪除index中具體的一條 """ self.es.delete(index=indexname, doc_type=doc_type, id=id) def get(self, indexname, id): return self.es.get(index=indexname, id=id) def search(self, indexname, size=10): try: return self.es.search(index=indexname, size=size, sort="@timestamp:desc") except Exception as err: print(err)

方式二:安裝requests模塊,通過GET、POST方式操作Elasticsearch

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 class RequestsElasticSearchClass(object): def __init__(self, host, port, user, passwrod): self.url = ‘http://‘ + host + ‘:‘ + str(port) basicpwd = base64.b64encode((user + ‘:‘ + passwrod).encode(‘UTF-8‘)) self.headers = {"User-Agent": "shhnwangjian", "Content-Type": "application/json", "Authorization": "Basic {}".format(basicpwd.decode(‘utf-8‘))} def search(self, indexname, size=10): gettdata = {"sort": "@timestamp:desc", "size": size} url = self.url + ‘/‘ + indexname + ‘/_search‘ ret = requests.get(url, headers=self.headers, timeout=10, params=gettdata) print(ret.text)

備註:python3.6.1版本

python Elasticsearch5.x使用