程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

python操作ES的三種辦法

編輯:Python

python操作ES的三種辦法

1 使用requests模塊

import requests
data = {

"name": "大娘子",
"age": 18,
"from": "sheng",
"desc": "膚白貌美,嬌憨可愛",
"tags": ["白", "富", "美"]
}
res = request.put('http://127.0.0.1:9200/lqz/_doc/6', json=data)
print(res.text)

2 使用官方提供的包

# 推薦使用 elasticsearch 需要注意版本問題
from elasticsearch import Elasticsearch
client = Elasticsearch("http://localhost:9200")
print(client.info) # es信息
# 創建索引
result = client.indices.create(index='user')
print(result)
# 刪除索引
result = client.indices.delete(index='user')
print(result)
# 更新數據 必須的用
''' 不用doc包裹會報錯 ActionRequestValidationException[Validation Failed: 1: script or doc is missing '''
data = {
'doc': {
'userid': '1', 'username': 'lqz', 'password': '123ee', 'test': 'test'}}
result = client.update(index='news', doc_type='_doc', body=data, id=1)
print(result)
# 刪除數據 
result = client.del
print(result)
# 查詢 查詢 原生咋查,這裡就可以咋用 
# 查找所有文檔 
query = {
'query': {
'match_all': {
}}}
# 查找名字叫做lxx的所有文檔 
query = {
'query': {
'term': {
'name': 'lxx'}}}
# 查找年齡大於11的所有文檔 
query = {
'query': {
'range': {
'price': {
'gt': 100}}}}
allDoc = client.search(index='books', body=query)
print(allDoc)

3 ORM包

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(fields={
'title': Keyword()})
author = Text()
class Index:
name = 'myindex' # 索引名
if __name__ == '__main__':
Article.init() # 創建映射
# 保存數據
article = Article()
article.title = "test"
article.author = "lxx"
article.save() # 保存數據
# 查詢數據
s=Article.search()
s = s.filter('match', title="test")
results = s.execute()
print(results)
# 刪除數據
s = Article.search()
s = s.filter('match', title="test").delete()
# 修改數據
s = Article().search()
s = s.filter('match', title="test")
results = s.execute()
print(results[0])
results[0].title="xxx"
results[0].save()

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved