本例目的仅仅是防止自己遗忘,如果能为一些朋友提供帮助,也是功德一件~
# 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':0,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)
网友评论