首页 > 其他分享 >es使用示例

es使用示例

时间:2023-12-20 11:48:15浏览次数:43  
标签:files index 示例 args lst 使用 import 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()

 

标签:files,index,示例,args,lst,使用,import,es
From: https://www.cnblogs.com/testzcy/p/17916179.html

相关文章

  • 使用阿里云oss报错:com.alibaba.cloud:aliyun-oss-spring-boot-starter:jar:unknown wa
    根据阿里云OSS的案例文档,在springboot项目中配置pom时报错https://github.com/alibaba/aliyun-spring-boot/tree/master/aliyun-spring-boot-samples/aliyun-oss-spring-boot-sampledemo中的配置:<dependency><groupId>com.alibaba.cloud</groupId>......
  • a-tree-select的使用案例
    <a-tree-select:maxTagCount="6"@deselect="deSelectQueryDetailTreeData"@select="initQueryDetailTreeData"style="width:270px"v-mod......
  • 使用redbaron删除删除一个.py文件的所有注释,输出到一个新.py文件,文件名加上_nocmts后
    BUG:目前输出的文件中可能会出现缩进错误,待修改。fromredbaronimportRedBarondefremove_comments_with_redbaron(source_py_file,keep_blank_lines):withopen(source_py_file,'r',encoding='utf-8')asfile:red=RedBaron(file.read())co......
  • filebeat配置采集多个文件(多索引)推送ES
     Filebeat根据不同的日志设置不同的索引 配置如下:filebeat.inputs:-type:logpaths:-/tmp/log/ecologyencoding:GB2312fields:type:ecology-type:logpaths:-/tmp/log/stderr.logencoding:GB2312fields:type:strerr-ty......
  • Charles对Android手机Https请求的抓包
    Charles对Android手机Https请求的抓包•前情提要:本文只是对android手机进行抓包的描述,由于android手机系统原因,android7.0系统及以上需要在app中配置证书信任才能进行https抓包,android7.0(不含)以下系统,只需要配置好证书即可进行https抓包,本文分CharlesWindows版使用说明一、......
  • Kubernetes基础总结
    一、k8s简介kubernetes——容器、分布式架构kubernetes本质是一组服务器集群,可以在集群的每个节点上运行特定的程序,来对节点中的容器进行管理。主要功能:自我修复弹性伸缩——自动调整运行的容器数量服务发现——自动找依赖负载均衡——自动实现请求的负载均衡版本退回存......
  • wordpress博客系统
    wordpress博客系统LNMP:Linux+nginx+mysql+php一个操作系统+web网站+一个数据库存放数据+后端编程语言基于红帽操作系统来搭建1.需要一个本地yum仓库[[email protected]]#vimlocal.repo[local]name=localbaseurl=file:///mediaenabled=1gpgcheck=0[root@ser......
  • 10个常见的 Kubernetes 陷阱和挑战
    Kubernetes是最流行的容器编排和部署平台。它的强大功能特性,可以保障在生产中可靠地运行容器化应用程序。然而,有灵活性的同时也带来了复杂性,在本文中,我们将探讨许多团队遇到的10个常见Kubernetes陷阱。能够识别并避免这些挑战将提高应用程序的可扩展性、可靠性和安全性,同时让你......
  • kubernetes(k8s)Gitlab CI Runner 的安装
    kubernetes(k8s)GitlabCIRunner的安装简介从Gitlab8.0开始,GitlabCI就已经集成在Gitlab中,只要在项目中添加一个.gitlab-ci.yml文件,然后添加一个Runner,即可进行持续集成。在介绍GitlabCI之前,先看看一些GitlabCI的一些相关概念。流程逻辑如下:Jobs->Stages->Pipel......
  • 手把手教你使用ArkTS中的canvas实现签名板功能
     一、屏幕旋转● 实现签名板的第一个功能就是旋转屏幕。旋转屏幕在各种框架中都有不一样的方式,比如:在H5端,我们一般是使用CSS中的transform属性中的rotate()方法来强制将网页横屏,然后实现一系列功能● 在嵌套第三方APP中,我们一般是调用对应的SDK提供的方法,即可实现旋转屏幕......