最最最最簡單的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

相關文章
相關標籤/搜索