# -*- 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"}})
python