Jadual Kandungan
Dua cara untuk Python mengendalikan Elasticsearch
Segerakkan data antara mysql dan Elasticsearch
Penggunaan tumpukan jerami
Suplemen Redis
Rumah pangkalan data tutorial mysql Bagaimana Python mengendalikan ES dan cara menyegerakkan data dengan Mysql

Bagaimana Python mengendalikan ES dan cara menyegerakkan data dengan Mysql

Jun 01, 2023 pm 09:49 PM
mysql python es

Dua cara untuk Python mengendalikan Elasticsearch

# 官方提供的:Elasticsearch
# pip install elasticsearch
# GUI:pyhon能做图形化界面编程吗?
	-Tkinter
  -pyqt
# 使用(查询是重点)
# pip3 install elasticsearch
https://github.com/elastic/elasticsearch-py
from elasticsearch import Elasticsearch
obj = Elasticsearch(['127.0.0.1:9200','192.168.1.1:9200','192.168.1.2:9200'],)
# 创建索引(Index)
# body:用来干什么?mapping:{},setting:{}
# result = obj.indices.create(index='user',ignore=400)
# print(result)
# 删除索引
# result = obj.indices.delete(index='user', ignore=[400, 404])
# 插入和查询数据(文档的增删查改),是最重要
# 插入数据
# POST news/politics/1
# {'userid': '1', 'username': 'lqz','password':'123'}
# data = {'userid': '1', 'username': 'lqz','password':'123'}
# result = obj.create(index='news', doc_type='politics', id=1, body=data)
# print(result)
# 更新数据
'''
不用doc包裹会报错
ActionRequestValidationException[Validation Failed: 1: script or doc is missing
'''
# data ={'doc':{'userid': '1', 'username': 'lqz','password':'123ee','test':'test'}}
# result = obj.update(index='news', doc_type='politics', body=data, id=1)
# print(result)
# 删除数据
# result = obj.delete(index='news', doc_type='politics', id=1)
# 查询
# 查找所有文档
# query = {'query': {'match_all': {}}}
#  查找名字叫做jack的所有文档
# query = {'query': {'match': {'desc': '娇憨可爱'}}}
# query = {'query': {'term': {'from': 'sheng'}}}
query = {'query': {'term': {'name': '娘子'}}}
# term和match的区别
# term是短语查询,不会对term的东西进行分词
# match 会多match的东西进行分词,再去查询
# 查找年龄大于11的所有文档
# allDoc = obj.search(index='lqz', doc_type='doc', body=query)
allDoc = obj.search(index='lqz', doc_type='doc', body=query)
print(allDoc)
import json
print(json.dumps(allDoc))
# print(allDoc['hits']['hits'][0]['_source'])
# 如何集成到django项目中:创建索引,提前创建好就行了
# 插入数据,查询数据,修改数据
# query = {'query': {'term': {'name': '娘子'}}}
# allDoc = obj.search(index='lqz', doc_type='doc', body=query)
# json格式直接返回
# saas :软件即服务,不是用人家服务,而是写服务给别人用----》正常的开发
# 舆情监测系统:(爬虫)
# 只监控微博---》宜家:微博,百度贴吧,上市公司
# 公安:负面的,---》追踪到哪个用户发的---》找上门了
# qq群,微信群----》舆情监控(第三方做不了,腾讯出的舆情监控,第三方机构跟腾讯合作,腾讯提供接口,第三方公司做)
# 平台开发出来,别人买服务---》买一年的微博关键字监控
Salin selepas log masuk

ERP: kewangan korporat, rantaian bekalan

Sebuah syarikat besar, Kingdee, UFIDA, telah membangunkan perisian----》Syarikat anda memiliki Beli pelayan ---》Perisian berjalan pada pelayan anda
mod saas: Syarikat membeli perkhidmatan, 10 tahun perkhidmatan----》Akaun dan kata laluan---》Log masuk dan anda boleh beroperasi ---》Jika ada masalah, hubungi UFIDA ---》Pelayan di tempat orang lain---》Awan kerajaan, awan pelbagai---semuanya pergi ke awan

---Benda yang kerajaan belanjakan untuk membeli---》Adakah UF berani membocorkannya?
---Pengkomputeran awan masa depan---》Hanya boleh mengakses Internet---》Kuasa pengkomputeran komputer adalah terhad---》Beli perkhidmatan di awan---》Pengkomputeran 1+. . . +100 ---》Beli perkhidmatan pengkomputeran dan dapatkan hasilnya secara langsung

# 第二种使用方式
# https://github.com/elastic/elasticsearch-dsl-py
# pip3 install elasticsearch-dsl
from datetime import datetime
from elasticsearch_dsl import Document, Date, Nested, Boolean,analyzer, InnerDoc, Completion, Keyword, Text,Integer
from elasticsearch_dsl.connections import connections
connections.create_connection(hosts=["localhost"])
class Article(Document):
    title = Text(analyzer='ik_max_word', search_analyzer="ik_max_word", fields={'title': Keyword()})
    author = Text()
    class Index:
        name = 'myindex'  # 索引名
    def save(self, ** kwargs):
        return super(Article, self).save(** kwargs)
if __name__ == '__main__':
    # Article.init()  # 创建映射
    # 保存数据
    # article = Article()
    # article.title = "测试数据"
    # article.author = "egon"
    # article.save()  # 数据就保存了
    #查询数据
    # s=Article.search()
    # s = s.filter('match', title="测试")
    # results = s.execute()
    # # 类比queryset对象,列表中一个个对象
    # # es中叫Response,当成一个列表,列表中放一个个对象
    # print(results)
    #删除数据
    # s = Article.search()
    # s = s.filter('match', title="测试").delete()
    #修改数据
    s = Article().search()
    s = s.filter('match', title="测试")
    results = s.execute()
    print(results[0])
    results[0].title="xxx"
    results[0].save()
    # 其他操作,参见文档
Salin selepas log masuk

Segerakkan data antara mysql dan Elasticsearch

# 只要article表插入一条数据,就自动同步到es中
# 第一种方案:
	-每当aritcle表插入一条数据(视图类中,Article.objects.create(),update)
  -往es中插入一条
  -缺陷:代码耦合度高,改好多地方
# 第二种方案:
	-重写create方法,重写update方法
  -缺陷:同步操作---》es中插入必须返回结果才能继续往下走
# 第三种方案:
	-用celery,做异步
  -缺陷:引入celery,还得有消息队列。。。
# 第四种方案:(用的最多)
	-重写create方法,重写update方法,用信号存入,异步操作
  -缺陷:有代码侵入
# 第五种方案:(项目不写代码,自动同步),第三方开源的插件
	-https://github.com/siddontang/go-mysql-elasticsearch----go写
  -你可以用python重写一个,放到git上给别人用(读了mysql的日志)
  -跟平台无关,跟语言无关
  -如何使用:
  	-源码下载---》交叉编译---》可执行文件--》运行起来--》配置文件配好,就完事了
    # 配置文件
    [[source]]
    schema = "数据库名"
    tables = ["article"]
    [[rule]]
    schema = "数据库名"
    table = "表明"
    index = "索引名"
    type = "类型名"
  # 缺陷:
  	-es跟mysql同步时,不希望把表所有字段都同步,mysql的多个表对着es的一个类型
  # 话术升级:
  	-一开始同步
    -用了开源插件(读取mysql日志,连接上es,进行同步)
    -用信号自己写的
    -再高端:仿着他的逻辑,用python自己写的,----》(把这个东西开源出来)
Salin selepas log masuk

Penggunaan tumpukan jerami

  • django Modul pihak ketiga di Internet---"Apakah modul Django pihak ketiga yang telah anda gunakan?

  • Boleh merealisasikan carian teks penuh pada django

  • Setara dengan ORM--》Docking es, solr, whoosh

  • https://www.yisu.com/article/218631.htm

  • Tidak menyokong es, versi 6 atau lebih tinggi

  • haystack+Elasticsearch merealisasikan pengambilan teks penuh

  • operasi asli: Elasticsearch Elasticsearch-dsl

Suplemen Redis

#1  只有5种数据结构:
	-多种数据结构:字符串,hash,列表,集合,有序集合
#2  单线程,速度为什么这么快?
  -本质还是因为是内存数据库
  -epoll模型(io多路复用)
  -单线程,没有线程,进程间的通信
#3 linux上 安装redis#下载
  https://redis.io/download/
  #解压
  tar -xzf redis-5.0.7.tar.gz
  #建立软连接
  ln -s redis-5.0.7 redis
  cd redis
  make&&make install
  # bin路径下几个命令:redis-cli,redis-server,redis-sentinel
  # 在任意位置能够执行redis-server 如何做?配置环境变量
#4  启动redis的三种方式
  	-方式一:(一般不用,没有配置文件)
    	-redis-server
    -方式二:(用的也很少)
    	redis-serve --port 6380
    -方式三:(都用这种,配置文件)
    	daemonize yes #是否以守护进程启动
      pidfile /var/run/redis.pid   #进程号的位置,删除
      port 6379    #端口号
      dir "/opt/soft/redis/data"  #工作目录
      logfile 6379.log #日志位置  
      # 启动:redis-server redis.conf1
#5 客户端连接
  redis-cli -h 127.0.0.1 -p 6379
#6 使用场景
  -看md文档
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana Python mengendalikan ES dan cara menyegerakkan data dengan Mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

PHP dan Python: Contoh dan perbandingan kod PHP dan Python: Contoh dan perbandingan kod Apr 15, 2025 am 12:07 AM

PHP dan Python mempunyai kelebihan dan kekurangan mereka sendiri, dan pilihannya bergantung kepada keperluan projek dan keutamaan peribadi. 1.PHP sesuai untuk pembangunan pesat dan penyelenggaraan aplikasi web berskala besar. 2. Python menguasai bidang sains data dan pembelajaran mesin.

Bagaimana sokongan GPU untuk Pytorch di CentOS Bagaimana sokongan GPU untuk Pytorch di CentOS Apr 14, 2025 pm 06:48 PM

Membolehkan pecutan GPU pytorch pada sistem CentOS memerlukan pemasangan cuda, cudnn dan GPU versi pytorch. Langkah-langkah berikut akan membimbing anda melalui proses: Pemasangan CUDA dan CUDNN Tentukan keserasian versi CUDA: Gunakan perintah NVIDIA-SMI untuk melihat versi CUDA yang disokong oleh kad grafik NVIDIA anda. Sebagai contoh, kad grafik MX450 anda boleh menyokong CUDA11.1 atau lebih tinggi. Muat turun dan pasang Cudatoolkit: Lawati laman web rasmi Nvidiacudatoolkit dan muat turun dan pasang versi yang sepadan mengikut versi CUDA tertinggi yang disokong oleh kad grafik anda. Pasang Perpustakaan Cudnn:

Penjelasan terperinci mengenai Prinsip Docker Penjelasan terperinci mengenai Prinsip Docker Apr 14, 2025 pm 11:57 PM

Docker menggunakan ciri -ciri kernel Linux untuk menyediakan persekitaran berjalan yang cekap dan terpencil. Prinsip kerjanya adalah seperti berikut: 1. Cermin digunakan sebagai templat baca sahaja, yang mengandungi semua yang anda perlukan untuk menjalankan aplikasi; 2. Sistem Fail Kesatuan (Unionfs) menyusun pelbagai sistem fail, hanya menyimpan perbezaan, menjimatkan ruang dan mempercepatkan; 3. Daemon menguruskan cermin dan bekas, dan pelanggan menggunakannya untuk interaksi; 4. Ruang nama dan cgroups melaksanakan pengasingan kontena dan batasan sumber; 5. Pelbagai mod rangkaian menyokong interkoneksi kontena. Hanya dengan memahami konsep -konsep teras ini, anda boleh menggunakan Docker dengan lebih baik.

Python vs JavaScript: Komuniti, Perpustakaan, dan Sumber Python vs JavaScript: Komuniti, Perpustakaan, dan Sumber Apr 15, 2025 am 12:16 AM

Python dan JavaScript mempunyai kelebihan dan kekurangan mereka sendiri dari segi komuniti, perpustakaan dan sumber. 1) Komuniti Python mesra dan sesuai untuk pemula, tetapi sumber pembangunan depan tidak kaya dengan JavaScript. 2) Python berkuasa dalam bidang sains data dan perpustakaan pembelajaran mesin, sementara JavaScript lebih baik dalam perpustakaan pembangunan dan kerangka pembangunan depan. 3) Kedua -duanya mempunyai sumber pembelajaran yang kaya, tetapi Python sesuai untuk memulakan dengan dokumen rasmi, sementara JavaScript lebih baik dengan MDNWebDocs. Pilihan harus berdasarkan keperluan projek dan kepentingan peribadi.

MySQL vs Pangkalan Data Lain: Membandingkan Pilihan MySQL vs Pangkalan Data Lain: Membandingkan Pilihan Apr 15, 2025 am 12:08 AM

MySQL sesuai untuk aplikasi web dan sistem pengurusan kandungan dan popular untuk sumber terbuka, prestasi tinggi dan kemudahan penggunaan. 1) Berbanding dengan PostgreSQL, MySQL melakukan lebih baik dalam pertanyaan mudah dan operasi membaca serentak yang tinggi. 2) Berbanding dengan Oracle, MySQL lebih popular di kalangan perusahaan kecil dan sederhana kerana sumber terbuka dan kos rendah. 3) Berbanding dengan Microsoft SQL Server, MySQL lebih sesuai untuk aplikasi silang platform. 4) Tidak seperti MongoDB, MySQL lebih sesuai untuk data berstruktur dan pemprosesan transaksi.

Cara Memasang MySQL di CentOS7 Cara Memasang MySQL di CentOS7 Apr 14, 2025 pm 08:30 PM

Kunci untuk memasang MySQL dengan elegan adalah untuk menambah repositori MySQL rasmi. Langkah -langkah khusus adalah seperti berikut: Muat turun kekunci GPG rasmi MySQL untuk mencegah serangan pancingan data. Tambah fail repositori MySQL: rpm -uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm kemas kini yum repository cache: yum update mysql: yum pemasangan mysql-server mysql Server.

Cara memanggil Docker LNMP Cara memanggil Docker LNMP Apr 15, 2025 am 11:15 AM

Docker LNMP Container Call Langkah: Jalankan bekas: Docker Run -D -Name LNMP -Container -P 80:80 -P 443: 443 LNMP -Stack Untuk mendapatkan IP Container: Docker Memeriksa LNMP -Container | GREP IPADDRESS ACCESS Laman web: http: // & lt; container ip & gt; /index.phpssh akses: docker exec -it lnmp -container bash akses mysql: mysql -u roo

Cara Memasang Nginx di CentOs Cara Memasang Nginx di CentOs Apr 14, 2025 pm 08:06 PM

CentOS Memasang Nginx memerlukan mengikuti langkah-langkah berikut: memasang kebergantungan seperti alat pembangunan, pcre-devel, dan openssl-devel. Muat turun Pakej Kod Sumber Nginx, unzip dan menyusun dan memasangnya, dan tentukan laluan pemasangan sebagai/usr/local/nginx. Buat pengguna Nginx dan kumpulan pengguna dan tetapkan kebenaran. Ubah suai fail konfigurasi nginx.conf, dan konfigurasikan port pendengaran dan nama domain/alamat IP. Mulakan perkhidmatan Nginx. Kesalahan biasa perlu diberi perhatian, seperti isu ketergantungan, konflik pelabuhan, dan kesilapan fail konfigurasi. Pengoptimuman prestasi perlu diselaraskan mengikut keadaan tertentu, seperti menghidupkan cache dan menyesuaikan bilangan proses pekerja.

See all articles