es使用示例

记录是否存在

res = es.exists(index="ncbi_gene", id=_id)

插入记录

es_res = self.es.index(index="ncbi_gene", id=my_data['GeneID'], body=my_data)
if es_res['result'] in ['created', 'updated']:
    logging.info('parse success:%s' % _id)
else:
    logging.error('insert into es failed:%s' % es_res)

批量插入

复制代码
import logging
import os
import shutil
from elasticsearch import helpers
from elasticsearch import Elasticsearch

ES_SERVERS = [
    "http://***:9200",
    "http://***:9200"
]


class INSERTES(NCBIDown):
    def in_es(self):
        es = Elasticsearch(ES_SERVERS)
        files_lst = os.listdir(self.record_dir)
        files_lst = [f for f in files_lst if f.endswith('_parse.json')]
        index = 0
        while index < len(files_lst):
            files = files_lst[index:index + 100]
            esitems = []
            for esfile in files:
                try:
                    with open(self.record_dir + "/" + esfile) as f:
                        info = json.loads(f.read())
                except Exception as ex:
                    logging.error('load data failed: %s %s'%(esfile, str(ex)))
                    raise ex
                
                item = {"_id": info['GeneID'], "_index":'ncbi_gene', "_source": info }
                esitems.append(item)
            helpers.bulk(es, esitems, request_timeout=1000)
            index += 100
        logging.info('insert into es finish')

    


if __name__ == '__main__':
    args = parser.parse_args()
    obj = INSERTES(args.name, args.apk_key, args.email, args.record_dir, args.log_dir, args.spos, args.epos,
                   args.step, args.num, args.ids)
    obj.install_log()
    obj.insert2es()
复制代码

 

posted on   我和你并没有不同  阅读(9)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2020-12-20 kubeEdge学习笔记
2019-12-20 比较工具
2018-12-20 网络是怎样连接的 读书笔记
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示