這篇文章真的很基礎,用flask作網絡服務器,python操做mongodb與elasticsearch,
不要問我權限管理,ip限制,路由藍圖什麼的,這篇文章統統,都沒有,只有純粹的demo及api調用,很少說,上代碼吧html
from elasticsearch import Elasticsearch
import pymongo //導入es,mongodb庫
from flask import Flask, jsonify
import config//配置文件,因人而異
es = Elasticsearch(config.ES_HOST, timeout=180)//實例化es
client = pymongo.MongoClient(host=config.MONGO_HOST, port=config.MONGO_PORT)//實例化mongo
db = client[config.MONGO_DB]
db.authenticate(config.MONGO_AUTH_NAME, config.MONGO_AUTH_PASSWORD)//驗證Mongo,若是須要
article = db['article']//具體mongodb的collection
es.indices.delete(index='qb-lagou', ignore=[400, 404])//刪除名爲qb-lagou的index
//查詢mongodb並映射到es中
for item in article.find():
item['aid'] = str(item['_id'])
item.pop('_id')
//具體建立es數據
es.index(index="qb-lagou",
doc_type="article",
id=item['aid'],
body=item)
//doc_type必填,body爲查詢條件,默認爲match_all
def search_from_es(doc_type, body=None, index='qb-lagou'):
if not body:
body = {"match_all": {}}
res = es.search(index=index, doc_type=doc_type, body={"query": body})
return res['hits']['hits']
app = Flask(__name__)
//查詢mongo的數據
@app.route('/mongo')
def get_data_by_mongo():
item = article.find_one()
item['_id'] = str(item['_id'])
return jsonify(item)
//查詢es的數據
@app.route('/es')
def get_data_by_es():
return jsonify(search_from_es('article'))
if __name__ == '__main__':
app.run()
複製代碼