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

时间: 2024-10-13 04:59:04

python Elasticsearch5.x使用的相关文章

ElasticSearch2.3/2.4升级到ElasticSearch5.0

参考文档(排名不分先后) https://www.elastic.co/guide/en/elasticsearch/reference/5.0/setup-upgrade.html https://github.com/elastic/elasticsearch-migration/ http://www.infoq.com/cn/news/2016/08/Elasticsearch-5-0-Elastic http://hnr520.blog.51cto.com/4484939/186703

(一)elasticsearch-5.x安装与配置

(一)平台所需的环境 OS:CentOS 7.x minimal elasticsearch :elasticsearch-5.4.0版本 jdk:  1.8已上版本 创建普通用户:appuser最新的下载路径地址为:https://www.elastic.co/downloads (二)配置操作系统的环境并安装elasticsearch: 1.ifconifg查看网络的命令无法使用,最后的解决方案为:yum -y install net-tools [[email protected] ~]#

elasticsearch5.0集群部署及故障测试

本文主要介绍两节点集群部署,节点故障测试,模拟验证集群脑裂现象. 一.实验环境 节点1:192.168.115.11 节点1:192.168.115.12 版本:5.0.1 二.安装配置 具体部署过程见单机版:http://hnr520.blog.51cto.com/4484939/1867033 1.修改配置文件 cat elasticsearch.yml cluster.name: hnrtest node.name: hnr01 path.data: /data/elasticsearch

ElasticSearch5.5.1插件分类

ElasticSearch5.5.1插件分类 附官网介绍:https://www.elastic.co/guide/en/elasticsearch/plugins/5.5/intro.html 一.插件介绍 插件是以自定义方式来增强Elasticsearch的核心功能.插件可以用来添加自定义映射类型,自定义分析器,本地脚本,自定义发现或者其他更多.插件包含JAR文件,但也可能包含脚本和配置文件,必须安装在群集的每个节点.安装后,每个节点必须重新启动后,插件才能运行.自定义元数据集群状态插件需要

ElasticSearch5.6.5集群部署及调优、Head和Bigdesk插件安装

一.简介: Elasticsearch是一个基于Apache Lucene的开源搜索引擎.无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进.性能最好的.功能最全的搜索引擎库. Elasticsearch不仅仅是Lucene和全文搜索,我们还能这样去描述它: ·       分布式的实时文件存储,每个字段都被索引并可被搜索 ·        分布式的实时分析搜索引擎 ·        可以扩展到上百台服务器,处理PB级结构化或非结构化数据 二.环境准备 主机 系统 配置 IP nod

python对于新版本elasticsearch-dsl(7.1)的使用说明

一.旧版elasticsearch-dsl(5.1)对应elasticsearch5.1.1的版本 很多同学在python搜索引擎视频中关于看到的第十章elasticsearch使用中使用python创建mapping老师使用的以下代码,这些代码对于最新版的elasticsearch-dsl的引用已经失效,会报异常错误 from datetime import datetime from elasticsearch_dsl import Document, Date, Nested, Boole

Python学习1-Python和Pycharm的下载与安装

本文主要介绍Python的下载安装和Python编辑器Pycharm的下载与安装. 一.Python的下载与安装 1.下载 到Python官网上下载Python的安装文件,进入网站后显示如下图: 网速访问慢的话可直接在这里下载:python-2.7.11.amd64 在Downloads中有对应的支持的平台,这里我们是在Windows平台下运行,所以点击Windows,出现如下: 在这里显示了Python更新的所有版本,其中最上面两行分别是Python2.X和Python3.X对应的最后更新版本

Python——深入理解urllib、urllib2及requests(requests不建议使用?)

深入理解urllib.urllib2及requests            python Python 是一种面向对象.解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年,Python 源代码同样遵循 GPL(GNU General Public License)协议[1] .Python语法简洁而清晰,具有丰富和强大的类库. urllib and urllib2 区别 urllib和urllib2模块都做与请求URL相关的操作,但

python学习_day26_面向对象之封装

1.私有属性 (1)动态属性 在python中用双下划线开头的方式将属性隐藏起来.类中所有双下划线开头的名称,如__x都会自动变形成:_类名__x的形式.这种自动变形的特点是: a.类中定义的__x只能在内部使用,如self.__x,引用的就是变形的结果.b.这种变形其实正是针对外部的变形,在外部是无法通过__x这个名字访问到的.c.在子类定义的__x不会覆盖在父类定义的__x,因为子类中变形成了:_子类名__x,而父类中变形成了:_父类名__x,即双下滑线开头的属性在继承给子类时,子类是无法覆