# -*- 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":"深圳1"}})
本文轉載自:https://blog.csdn.net/weixin_42126327/article/details/81285487
一文了解 Elasticsearch 及其與 Python 的對接實現