Bulk API 基本用法
Bulk 是一個(gè)批量導(dǎo)入的接口
請(qǐng)求體
{ "index": { "_index": "itest", "_type": "_doc", "_id": "15707" }}
{"jid":15707,"title":"Java開(kāi)發(fā)工程師","salary":{"gte":9000,"lte":15000},"city":"北京","company":"北京威米信科技有限公司","description":"\n 1、參與軟件的架構(gòu)設(shè)計(jì)、流程設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)等工作;2、參與軟件相關(guān)技術(shù)文檔的編寫;3、完成開(kāi)發(fā)框架搭建;4、根據(jù)項(xiàng)目/產(chǎn)品需要,開(kāi)展技術(shù)攻關(guān)工作,確定技術(shù)路線;5、配合項(xiàng)目經(jīng)理完成項(xiàng)目建設(shè)任務(wù)。任職資格:1、本科 以上學(xué)歷,精通Java語(yǔ)言開(kāi)發(fā);2、熟練運(yùn)用主流開(kāi)源框架,如SSH,SpringMVC,MyBatis等;3、熟悉基于Oracle或者M(jìn)ySQL數(shù)據(jù)庫(kù)的設(shè)計(jì)和開(kāi)發(fā),熟悉基于Ehcache,Redis,MongoDB的設(shè)計(jì)和開(kāi)發(fā);4、熟悉微服務(wù)spring boot、spring cloud、dubbo等,對(duì)業(yè)務(wù)中臺(tái)、數(shù)據(jù)中臺(tái)的設(shè)計(jì)思想深入理解;5、熟悉分布式系統(tǒng)的設(shè)計(jì)和應(yīng)用,熟悉分布式、緩存、消息、負(fù)載均衡等機(jī)制和實(shí)現(xiàn);6、具有Vue等前端技術(shù)經(jīng)驗(yàn)者優(yōu)先。7、對(duì)前后端分離,分庫(kù)分表等技術(shù)有實(shí)際操作經(jīng)驗(yàn);8、熟悉docker、kubernetes等。9、熟悉敏捷開(kāi)發(fā)和項(xiàng)目管理經(jīng)驗(yàn)經(jīng)驗(yàn)者;10、熟練使用git,svn。\n \n 職能類別:軟件工程師\n \n 微信分享\n \n \n "}
返回值
- 第一行說(shuō)明
index:代表操作類型index-重建索引 , create-創(chuàng)建, delete-刪除
_index:代表指向索引名
_type:固定為_(kāi)doc
_id:要操作的數(shù)據(jù)id
第二行則是要操作的數(shù)據(jù)
{
"took": 83, #整個(gè)搜索花費(fèi)了多少毫秒
"errors": false, #整個(gè)過(guò)程是否包含錯(cuò)誤
"items": [
{
"index": { #每次操作后的結(jié)果
"_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參數(shù)說(shuō)明
三種使用形式
- 默認(rèn),等待所有數(shù)據(jù)導(dǎo)入再刷新索引,即對(duì)查詢暴露
- 每發(fā)生一條數(shù)據(jù)變化,立即刷新索引,對(duì)外暴露會(huì)影響性能
- 默認(rèn)每一秒刷新一次索引,將最近一秒產(chǎn)生的數(shù)據(jù)刷新到索引
可以通過(guò)設(shè)置index.refresh_interval修改刷新間隔
注意
TIPS: Bulk只可用于小批量數(shù)據(jù)的導(dǎo)入,最大的允許單次請(qǐng)求100M. 如果需要大規(guī)模批量導(dǎo)
入數(shù)據(jù),還需要借助logstash這樣的三方工具.