ElasticSearch - 批量导入数据
我们假设一个这样的场景,我们的小伙伴通过爬虫或一些其他方式把某种数据给我们写入到了一个文件当中,这时我们需要从一个数据源将数据导入到ES中,我们有哪些方法可以实现呢?
大家经常使用的方法应该就是通过编写程序获取数据源然后调用ES提供的API进行各种操作。当然除了这种之外,我们还可以通过bulk
这个API来完成。
大家可以先看看官方文档【docs-bulk】,bulk
这个操作的话可以将特定形式的文件进行解析后存储到ES当中。
1.准备数据
这一步可以说是最简单,但是也最容易出问题的一步。这里我们准备了一个简单的数据文件
book_index
,这里特别注意的是最后一定要换一行,否则会解析错误。
除了这个细节之外,文本的编码格式、转义字符等各种问题,大家自己亲手实操了之后就知道什么是绝望了。
2.Bulk导入数据
这里我们进入到文件夹目录使用
curl -X POST "http://111.229.125.192:9200/_bulk" -H 'Content-Type: application/json' --data-binary @book_index
命令导入即可,这里第一个问题就是我们需要先创建这个索引。
创建索引之后再导入就可以发现我们的数据已经进入到ES当中了。