Bulk API 基本用法
Bulk 是一个批量导入的接口
请求体
{ "index": { "_index": "itest", "_type": "_doc", "_id": "15707" }}
{"jid":15707,"title":"Java开发工程师","salary":{"gte":9000,"lte":15000},"city":"北京","company":"北京威米信科技有限公司","description":"\n 1、参与软件的架构设计、流程设计、数据库设计等工作;2、参与软件相关技术文档的编写;3、完成开发框架搭建;4、根据项目/产品需要,开展技术攻关工作,确定技术路线;5、配合项目经理完成项目建设任务。任职资格:1、本科 以上学历,精通Java语言开发;2、熟练运用主流开源框架,如SSH,SpringMVC,MyBatis等;3、熟悉基于Oracle或者MySQL数据库的设计和开发,熟悉基于Ehcache,Redis,MongoDB的设计和开发;4、熟悉微服务spring boot、spring cloud、dubbo等,对业务中台、数据中台的设计思想深入理解;5、熟悉分布式系统的设计和应用,熟悉分布式、缓存、消息、负载均衡等机制和实现;6、具有Vue等前端技术经验者优先。7、对前后端分离,分库分表等技术有实际操作经验;8、熟悉docker、kubernetes等。9、熟悉敏捷开发和项目管理经验经验者;10、熟练使用git,svn。\n \n 职能类别:软件工程师\n \n 微信分享\n \n \n "}
返回值
- 第一行说明
index:代表操作类型index-重建索引 , create-创建, delete-删除
_index:代表指向索引名
_type:固定为_doc
_id:要操作的数据id
第二行则是要操作的数据
{
"took": 83, #整个搜索花费了多少毫秒
"errors": false, #整个过程是否包含错误
"items": [
{
"index": { #每次操作后的结果
"_index": "itest",
"_type": "_doc",
"_id": "15707",
"_version": 2,
"result": "updated",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 23,
"_primary_term": 1,
"status": 200
}
}
]
}
refresh参数说明
三种使用形式
- 默认,等待所有数据导入再刷新索引,即对查询暴露
- 每发生一条数据变化,立即刷新索引,对外暴露会影响性能
- 默认每一秒刷新一次索引,将最近一秒产生的数据刷新到索引
可以通过设置index.refresh_interval修改刷新间隔
注意
TIPS: Bulk只可用于小批量数据的导入,最大的允许单次请求100M. 如果需要大规模批量导
入数据,还需要借助logstash这样的三方工具.