Mongoの一括書き込みES

インポートpymongo 
インポート数学
elasticsearchインポートelasticsearchから
elasticsearchインポートヘルパーから
インポート時間
HOST = [ 'IP:ポート'] 
クラスタES = elasticsearch(HOST、タイムアウト= 3600)#はESホストが[:ポート、IPポートIP]かもしれリンク
クライアント= pymongo.MongoClient( "")#リンクデータベース
DB =クライアント[ "blue_book_news_dev"] [ "blue_book_news"] 
統計の#数を算出し、ページ内のモンゴ
NUMS = db.count()
印刷(NUMS)
ページおよびMath.ceil = (NUMS / 500)
_index = "ai51_main_prod" 
START_TIME time.time =()
範囲(ページ)におけるIの場合:
    N-Iは500 * = 
    印刷( "{500}の数を、{}物品" .format(I、 N))
    L =リスト(db.find({}、投影= { '_ ID'偽'news_URLが':真、 "コンテンツ":真、 "タイトル":真、 "publish_time":真}。)スキップ(N) .limit(500))
    Lの行のための:
        アクション= [] 
        line.get( "news_URLが" IF):
            アクション= { 
                "_index":_index、#类似于主键类型
                "_type": "ソース"、#类型
                " _id ":行[" news_URLが"]、#IDは如果不自己定义系统会给创建
                "_source":{ 
                    "page_category":なし、   
                    "URL":line.get(" news_URLが")、
                    "article_title":ライン。 ( "タイトル")を取得し、
                    "article_contentの":line.get( "コンテンツ")、
                    "publish_time_raw":line.get( "publish_time")は、
                    "publish_time_nomalized":なし、
                    "概要":なし

                }} 
            actions.append(アクション)
        helpers.bulk(ES、アクション)#批量写入

END_TIME = time.time( )
プリント(START_TIME、END_TIME)

  

おすすめ

転載: www.cnblogs.com/wang102030/p/11950531.html