最最最最简单的mongo-elasticsearch-python查询的实例

前言

这篇文章真的很基础,用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=[400404])//删除名为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()
复制代码

至于其余的mongo,flask,es的api,那我就只能抛出连接了,收下吧

mongodb
flask
espython

结果示例

mongo

es

这是个人github,欢迎大佬们猛戳,不定时更新git

相关文章
相关标签/搜索