这篇文章真的很基础,用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()
复制代码