文档章节

ElasticSearch04批量操作

AllenOR灵感
 AllenOR灵感
发布于 2017/09/10 01:18
字数 392
阅读 3
收藏 0

读取多份文档

显式声明索引名称和文档类型

from elasticsearch import Elasticsearch
from pprint import pprint

es = Elasticsearch(hosts=["192.168.1.132"])

# 根据索引名称、类型名称来获取多个文档
s = es.mget(
    index="megacorp",
    doc_type="employee",
    body={
        "docs": [
            {"_id": 1},
            {"_id": 2},
            {"_id": 3},
            {"_id": 4},
            {"_id": 5},
        ]
    }
)
pprint(s)

在body中声明索引名称和文档类型

from elasticsearch import Elasticsearch
from pprint import pprint

es = Elasticsearch(hosts=["192.168.1.132"])

s = es.mget(
    body={
        "docs": [
            {"_index": "megacorp", "_type": "employee", "_id": 1},
            {"_index": "megacorp", "_type": "employee", "_id": 2},
            {"_index": "megacorp", "_type": "employee", "_id": 3},
            {"_index": "website", "_type": "blog", "_id": 1},
            {"_index": "website", "_type": "blog", "_id": 2},
            {"_index": "website", "_type": "blog", "_id": 3},
            {"_index": "website", "_type": "blog", "_id": 4},
            {"_index": "website", "_type": "blog", "_id": 5},
            {"_index": "website", "_type": "blog", "_id": 6},
            {"_index": "website", "_type": "blog", "_id": 7},
        ]
    }
)

pprint(s)

 
 

写入多分文档

es.bulk

from elasticsearch import Elasticsearch
from elasticsearch import helpers
from datetime import datetime
from pprint import pprint

es = Elasticsearch(hosts=["192.168.1.132"])

s = es.bulk(
    index="website",
    doc_type="blog",
    body=[
        # {action: metadata}
        {"create": {"_id": 8}},
        # {request body}
        {
            "title": "created using es.bulk",
            "date": datetime.now().strftime("%Y/%m/%d %H:%M:%S"),
            "text": "try to write a doc to es"
        },
        # {action: metadata}        
        {"create": {"_id": 19}},
        # {request body}
        {
            "title": "created using es.bulk",
            "date": datetime.now().strftime("%Y/%m/%d %H:%M:%S"),
            "text": "try to write a doc to es"
        }
    ]
)

helps.bulk

from elasticsearch import Elasticsearch
from elasticsearch import helpers
from datetime import datetime
from pprint import pprint

es = Elasticsearch(hosts=["192.168.1.132"])

s = helpers.bulk(
    client=es,
    actions=[
        {
            # 备注: _op_type 默认采用的是index.
            # index和create的区别在于, index表示重建索引, version会自动+1, 而
            # create则表示创建, 当数据已存在时, 会报错.
            "_op_type": "index",  # create, delete, index, update
            "_index": "website",
            "_type": "blog",
            "_id": 11,
            "_source": {
                "title": "created using helpers.bulk",
                "date": datetime.now().strftime("%Y/%m/%d %H:%M:%S"),
                "text": "try to write a doc to es"
            }
        },
        {
            "_op_type": "index",
            "_index": "website",
            "_type": "blog",
            "_id": 12,
            "_source": {
                "title": "created using helpers.bulk",
                "date": datetime.now().strftime("%Y/%m/%d %H:%M:%S"),
                "text": "try to write a doc to es"
            }
        }
    ]
)

本文转载自:http://www.jianshu.com/p/e12dbd715d25

共有 人打赏支持
AllenOR灵感
粉丝 11
博文 2635
码字总数 83001
作品 0
程序员
私信 提问
优雅的使用pt-archiver进行数据归档

作者简介:蓝剑锋 TCL高级DBA,MySQL&Oracle OCP,负责数据库架构设计、数据库自动化运维平台。微信:lanjian106103,个人公众号:DBARUN 一. 引言 最近由于业务需求,需要将公有云RDS(业务...

ACMUG
2018/01/09
0
0
EF架构~性能高效的批量操作(Update篇)

很多时间之长,我写了EF架构~性能高效的批量操作(Insert篇),而今天我把Update篇也写一下,这对于批量处理数据很有帮助,它解决了EF与linq to sql批量更新数据上的效率问题。 对于EF架构中的...

mcy247
2017/12/06
0
0
mysql批量提交的优化

.背景 用户修改布局时,需要批量更新mysql的xxxxlayoutxxxx表。批量操作的数据量是2-30条/次。批量操作是这次项目在技术上比较关键的一个点,之前批量操作做过性能上的测试,mysql端问题不大...

天天顺利
2015/10/14
524
0
ES18-JAVA API 批量操作

1.批量查询 Multi Get API 测试 执行结果 2.批量操作 Bulk API 测试操作 3.批量处理器(Bulk Processor) BulkProcessor类提供了一个简单接口,可以根据请求的数量或大小自动刷新批量操作,也...

贾峰uk
2018/07/23
0
0
优雅地使用pt-archiver进行数据归档

mysql 日志 公有云 test charset uuid source statistics 摘要: 一、引言 最近由于业务需求,需要将公有云RDS(业务库)的大表数据归档至私有云MySQL(历史库),以缩减公有云RDS的体积和成...

姬子玉
2017/11/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

大数据教程(11.9)hive操作基础知识

上一篇博客分享了hive的简介和初体验,本节博主将继续分享一些hive的操作的基础知识。 DDL操作 (1)创建表 #建表语法CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name ...

em_aaron
今天
2
0
OSChina 周四乱弹 —— 我家猫真会后空翻

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @我没有抓狂 :#今天听这个# 我艇牛逼,百听不厌,太好听辣 分享 Led Zeppelin 的歌曲《Stairway To Heaven》 《Stairway To Heaven》- Led Z...

小小编辑
今天
3
0
node调用dll

先安装python2.7 安装node-gyp cnpm install node-gyp -g 新建一个Electron-vue项目(案例用Electron-vue) vue init simulatedgreg/electron-vue my-project 安装electron-rebuild cnpm ins......

Chason-洪
今天
3
0
scala学习(一)

学习Spark之前需要学习Scala。 参考学习的书籍:快学Scala

柠檬果过
今天
3
0
通俗易懂解释网络工程中的技术,如STP,HSRP等

导读 在面试时,比如被问到HSRP的主备切换时间时多久,STP几个状态的停留时间,自己知道有这些东西,但在工作中不会经常用到,就老是记不住,觉得可能还是自己基础不够牢固,知识掌握不够全面...

问题终结者
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部