1. 程式人生 > >Python3操作Elasticsearch進行增刪改查

Python3操作Elasticsearch進行增刪改查

開發十年,就只剩下這套架構體系了! >>>   

# -*- coding: utf-8 -*-
 
from elasticsearch import Elasticsearch
 
# 預設host為localhost,port為9200.但也可以指定host與port
es = Elasticsearch()
 
# 插入資料,index,doc_type名稱可以自定義,id可以根據需求賦值,body為內容
es.index(index="my_index",doc_type="test_type",id=0,body={"name":"python","addr":"深圳"})
es.index(index="my_index",doc_type="test_type",id=1,body={"name":"python","addr":"深圳"})
 
#同樣是插入資料,create() 方法需要我們指定 id 欄位來唯一標識該條資料,而 index() 方法則不需要,如果不指定 id,會自動生成一個 id
es.create(index="my_index",doc_type="test_type",id=1,body={"name":"python","addr":"深圳"})
 
#刪除指定的index、type、id的文件
es.delete(index='indexName', doc_type='typeName', id=1)
 
#刪除index
es.indices.delete(index='news', ignore=[400, 404])
 
query = {'query': {'match_all': {}}}# 查詢所有文件
query1 = {'query': {'match': {'sex': 'famale'}}}# 刪除性別為女性的所有文件
query2 = {'query': {'range': {'age': {'lt': 11}}}}# 刪除年齡小於11的所有文件
query3 = {'query': {'term': {'name': 'jack'}}}# 查詢名字叫做jack的所有文件
 
 
#刪除所有文件
es.delete_by_query(index="my_index",doc_type="test_type",body=query)
 
#get:獲取指定index、type、id所對應的文件
es.get(index="my_index",doc_type="test_type",id=1)
 
#search:查詢滿足條件的所有文件,沒有id屬性,且index,type和body均可為None
result = es.search(index="my_index",doc_type="test_type",body=query)
print(result['hits']['hits'][0])# 返回第一個文件的內容
 
#update:更新指定index、type、id所對應的文件
#更新的主要點:
#1. 需要指定 id
#2. body={"doc": <xxxx>} , 這個doc是必須的
es.update(index="my_index",doc_type="test_type",id=1,body={"doc":{"name":"python1","addr":"