Python 调用 ES、Solr、Phoenix的示例代码


Posted in Python onNovember 23, 2020
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# *************************************
# @Time  : 2019/8/12
# @Author : Zhang Fan
# @Desc  : Library
# @File  : MyDatabases.py
# @Update : 2019/8/23
# *************************************
import elasticsearch
import phoenixdb
import pysolr
import pymysql


class MyELS(object):
  """
  ===================================================================
  =====================    MyELS    =========================
  ===================================================================
  """
  def __init__(self):
    self.els_conn = None

  def connect_to_els(self, host, port):
    """
    连接到ElasticSearch服务器.
    """
    self.els_conn = elasticsearch.Elasticsearch([{'host': host, 'port': port}])
    print('Executing : Connect To Elastic Search | %s' % self.els_conn)

  def get_els_data(self, query, index):
    """
    获取ElasticSearch数据
    """
    print('Executing : Search | %s' % query)
    try:
      rst = self.els_conn.search(index=index, q=query)
      return rst['hits']
    except Exception as e:
      print('Elastic Search Error | %s' % e)
      raise Exception(e)


class MyPhoenix(object):
  """
  ===================================================================
  =====================    MyPhoenix    ======================
  ===================================================================
  """
  def __init__(self):
    self.phoenix_conn = None
    self.phoenix_cursor = None

  def connect_to_phoenix(self, host, port=8765):
    """
    连接到phoenix服务器
    """
    address = 'http://{0}:{1}/'.format(host, port)
    print('Executing : Connect To Phoenix | %s' % address)
    self.phoenix_conn = phoenixdb.connect(address, autocommit=True)
    self.phoenix_cursor = self.phoenix_conn.cursor()

  def set_schema(self, sql, schema):
    """
    设置schema
    """
    pre_sub, sub, fol_sub = sql.upper().partition('FROM')
    fol_sub = ' ' + schema + '.' + fol_sub.strip()
    new_sql = ''.join([pre_sub, sub, fol_sub])
    return new_sql

  def execute_phoenix_sql(self, sql):
    """
    执行sql语句
    """
    # sql = self.set_schema(sql, schema)
    print('Executing : Execute | %s' % sql)
    self.phoenix_cursor.execute(sql)

  def get_from_phoenix(self, sql):
    """
    获取phoenix数据
    """
    # sql = self.set_schema(sql, schema)
    print('Executing : Query | %s' % sql)
    try:
      self.phoenix_cursor.execute(sql)
    except Exception as e:
      print('Phoenix Error | %s' % e)
      raise Exception(e)
    return self.phoenix_cursor.fetchall()

  def disconnect_from_phoenix(self):
    """
    断开phoenix连接
    """
    print('Executing : Disconnect From HBase')
    self.phoenix_cursor.close()
    self.phoenix_conn.close()


class MySolr(object):
  """
  ===================================================================
  =====================    MySolr    =========================
  ===================================================================
  """
  def __init__(self):
    self.solr_conn = None
    self.base_url = None

  def connect_to_solr(self, address, selector):
    """连接到solr服务器.
    """
    self.base_url = 'http://{0}/solr/{1}/'.format(address, selector)
    self.solr_conn = pysolr.Solr(self.base_url)
    print('Executing : Connect To Solr | %s' % self.base_url)

  def get_solr_data(self, query):
    """
    获取solr数据
    """
    results = list()
    print('Executing : Search | %s' % query)
    try:
      items = self.solr_conn.search(query)
      for item in items:
        results.append(item)
    except Exception as e:
      print('Solr Error | %s' % e)
      raise Exception(e)
    return results

  def add_solr_data(self, data):
    """
    添加solr数据
    """
    print('Executing : add | %s' % data)
    try:
      self.solr_conn.add([data])
      self.solr_conn.commit()
    except Exception as e:
      print('Solr Error | %s' % e)
      raise Exception(e)

  def del_solr_byId(self, data):
    """
    删除solr数据
    """
    print('Executing : del | %s' % data)
    try:
      self.solr_conn.delete(id=data)
      self.solr_conn.commit()
    except Exception as e:
      print('Solr Error | %s' % e)
      raise Exception(e)


if __name__ == '__main__':
  print('This is test.')
  ms = MySolr()
  me = MyELS()
  mp = MyPhoenix()

以上就是Python 调用 ES、Solr、Phoenix的示例代码的详细内容,更多关于Python 调用 ES、Solr、Phoenix的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python将多个文本文件合并为一个文本的代码(便于搜索)
Mar 13 Python
解决pandas使用read_csv()读取文件遇到的问题
Jun 15 Python
Ubuntu下Python2与Python3的共存问题
Oct 31 Python
opencv转换颜色空间更改图片背景
Aug 20 Python
浅谈Python3中print函数的换行
Aug 05 Python
5款实用的python 工具推荐
Oct 13 Python
Pycharm安装python库的方法
Nov 24 Python
python之随机数函数的实现示例
Dec 30 Python
Python wordcloud库安装方法总结
Dec 31 Python
[原创]赚疯了!转手立赚800+?大佬的python「抢茅台脚本」使用教程
Jan 12 Python
python os.listdir()乱码解决方案
Jan 31 Python
Python上下文管理器Content Manager
Jun 26 Python
10个示例带你掌握python中的元组
Nov 23 #Python
详解anaconda安装步骤
Nov 23 #Python
Python可以用来做什么
Nov 23 #Python
pycharm激活码2020最新分享适用pycharm2020最新版亲测可用
Nov 22 #Python
python里反向传播算法详解
Nov 22 #Python
python动态规划算法实例详解
Nov 22 #Python
python全栈开发语法总结
Nov 22 #Python
You might like
sqlyog 中文乱码问题的设置方法
2008/10/19 PHP
php上传文件的增强函数
2010/07/21 PHP
php 连接mysql连接被重置的解决方法
2011/02/15 PHP
php截取后台登陆密码的代码
2012/05/05 PHP
PHP获取文件后缀名的三个函数
2012/10/15 PHP
php实现的返回数据格式化类实例
2014/09/22 PHP
ThinkPHP 表单自动验证运用示例
2014/10/13 PHP
PHP可变函数学习小结
2015/11/29 PHP
yii2.0框架实现上传excel文件后导入到数据库的方法示例
2020/04/13 PHP
js中单引号与双引号冲突问题解决方法
2013/10/04 Javascript
js实现简单随机抽奖的方法
2015/01/27 Javascript
jQuery对JSON数据进行排序输出的方法
2015/06/24 Javascript
jquery简单实现网页层的展开与收缩效果
2015/08/07 Javascript
JS+CSS实现大气清新的滑动菜单效果代码
2015/10/22 Javascript
微信小程序 地图定位简单实例
2016/10/14 Javascript
Javascript获取background属性中url的值
2016/10/17 Javascript
JS自定义混合Mixin函数示例
2016/11/26 Javascript
详解给Vue2路由导航钩子和axios拦截器做个封装
2018/04/10 Javascript
python交互式图形编程实例(一)
2017/11/17 Python
pytorch使用Variable实现线性回归
2019/05/21 Python
Python笔记之观察者模式
2019/11/20 Python
pycharm激活码有效到2020年11月底
2020/09/18 Python
Python3自动生成MySQL数据字典的markdown文本的实现
2020/05/07 Python
PyTorch中model.zero_grad()和optimizer.zero_grad()用法
2020/06/24 Python
css3中的calc函数浅析
2018/07/10 HTML / CSS
用HTML5制作视频拼图的教程
2015/05/13 HTML / CSS
STUBHUB日本:购买和出售全球活动门票
2018/07/01 全球购物
Made in Design意大利:现代家具、名家灯具和装饰
2020/10/27 全球购物
艺术系应届生的自我评价
2013/10/19 职场文书
幼儿园消防安全制度
2014/01/26 职场文书
中学生打架检讨书
2014/02/10 职场文书
五年级数学教学反思
2014/02/11 职场文书
小学生我的梦想演讲稿
2014/08/21 职场文书
玄武湖导游词
2015/02/05 职场文书
导游词书写之黄山
2019/08/06 职场文书
导游词之京东大峡谷旅游区
2019/10/29 职场文书