python elasticsearch 링크 풀 구현
2471 단어 demo
# -*- coding=utf8 -*-
import os
import json
from datetime import datetime
from elasticsearch import Elasticsearch, RequestsHttpConnection
from elasticsearch import Transport
from elasticsearch.exceptions import NotFoundError
class ES(object):
_index = ""
_type = ""
def __init__(self, hosts):
# requests es
self.conn_pool = Transport(hosts=hosts, connection_class=RequestsHttpConnection).connection_pool
def get_conn(self):
"""
"""
conn = self.conn_pool.get_connection()
return conn
def request(self, method, url, headers=None, params=None, body=None):
"""
es
@method
@url url
@headers
@params :dict
@body :json (headers Content-Type application/json)
# return :python
"""
conn = self.get_conn()
try:
status, headers, body = conn.perform_request(method, url, headers=headers, params=params, body=body)
except NotFoundError as e:
return None
if method == "HEAD":
return status
return json.loads(body)
def search(self, query=None, method="GET"):
url = "/%s/%s/_search" % (self._index, self._type)
if method == "GET":
data = self.get(url, params=query)
elif method == "POST":
data = self.post(url, body=query)
else:
return None
return data
def get(self, url, params=None, method="GET"):
"""
get es
"""
data = self.request(method, url, params=params)
return data
def put(self, url, body=None, method="PUT"):
"""
put es
"""
data = self.request(method, url, body=body)
return data
def post(self, url, body=None, method="POST"):
""" post """
data = self.request(method, url, body=body)
return data
def head(self, url, *args, **kwargs):
status = self.request("HEAD", url, *args, **kwargs)
return status
def delete(self, url, *args, **kwargs):
ret = self.request("DELETE", url, *args, **kwargs)
return ret
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
msdn에서 인증서 설정 데이터베이스 이미지 데모[페이지 맨 위로 돌아가기] 인바운드 연결 구성 인바운드 연결을 위한 Host_ 구성A HOST에서_A에서 HOST_B로그인 이름을 만듭니다.USE master; CREATE LOGIN HOST_B_login WIT...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.