zoukankan      html  css  js  c++  java
  • python Elasticsearch5.x使用

    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版本

  • 相关阅读:
    题解:CF1494 F. Delete The Edges
    「CEOI2011」选做
    题解:「CEOI2017」Chase
    学习笔记:《具体数学》问题整理
    题解:「COCI2019」 Transport
    【做题记录】位运算
    线性DP
    虚树 virtual-tree
    三元环计数
    长链剖分
  • 原文地址:https://www.cnblogs.com/timssd/p/7407450.html
Copyright © 2011-2022 走看看