python操作Elasticsearch样例

2022-01-30 00:00:00 索引 创建 数据 插入 希望

本例目的仅仅是防止自己遗忘,如果能为一些朋友提供帮助,也是功德一件~

# coding=utf8

from datetime import datetime
from elasticsearch import Elasticsearch, RequestsHttpConnection

# 连接elasticsearch,默认是9200
es = Elasticsearch(
hosts=[
{'host': '127.0.0.1',
'port': 443}
],
use_ssl=True,
verify_certs=True,
connection_class=RequestsHttpConnection
)

# 创建索引,索引的名字是my-index,如果已经存在了,就返回个400
# 这个索引可以现在创建,也可以在后面插入数据的时候再临时创建
# es.indices.create(index='my-index')
# {u'acknowledged':True}

doc = {
'author': 'kimchy',
'text': 'Elasticsearch: cool. bonsai cool.',
'timestamp': datetime.now(),
}
# 插入数据,(这里省略插入其他两条数据,后面用)
es.index(index="my-index", doc_type="test-type", id=01, body={"any": "data01", "timestamp": datetime.now()})
# {u'_type':u'test-type',u'created':True,u'_shards':{u'successful':1,u'failed':,u'total':2},u'_version':1,u'_index':u'my-index',u'_id':u'1}
# 也可以,在插入数据的时候再创建索引test-index
es.index(index="test-index", doc_type="test-type", id=42, body={"any": "data", "timestamp": datetime.now()})

# 查询数据,两种get and search
# get获取
res = es.get(index="my-index", doc_type="test-type", id=01)
print(res)
print(res['_source'])

# search获取
res = es.search(index="test-index", body={"query": {"match_all": {}}})
print(res)
for hit in res['hits']['hits']:
print(hit["_source"])
res = es.search(index="test-index", body={'query':{'match':{'any':'data'}}}) #获取any=data的所有值
print(res)

相关文章