对ES官网的reference的翻译,同时也是备忘,ES版本为7.5
下面是正文翻译,附上原文链接
https://www.elastic.co/guide/en/elasticsearch/reference/current/getting-started-index.html
==================================================================================================
索引一些文档
当你安装好集群并运行之后,你可以索引一些数据了。ES有多种多样的数据摄取方式,但最终它们都做了一件相同的事情:将JSON文档导入ES索引中。
你可以使用简单的PUT请求来实现文档的导入,请求中需要明确你想要添加文档的索引、唯一的文档ID并在请求体内附上一个或多个"field":"value"对:
curl -X PUT http://9.25.176.228:8080/customer/_doc/1?pretty -H 'content-type:application/json' -d '{"name":"John Doe"}'
上面的请求会自动创建customer索引如果它不存在的话,添加一个id=1的文档,并存储和索引“name”字段。
由于添加的文档是个新文档,返回的响应会显示上面的操作的结果是新创建了一个版本1的文档:
{
"_index" : "customer",
"_type" : "_doc",
"_id" : "1",
"_version" : 8,
"result" : "created",
"_shards" : {
"total" : 2,
"successful" : 2,
"failed" : 0
},
"_seq_no" : 9,
"_primary_term" : 5
}
这个新文档可以马上从集群中任何一个节点中获得,你可以使用GET请求指明该文档的id来检索它:
curl http://9.25.176.228:8080/customer/_doc/1?pretty
返回的响应表明找到了指定id为1的文档并展示了索引的原始字段:
{
"_index" : "customer",
"_type" : "_doc",
"_id" : "1",
"_version" : 8,
"_seq_no" : 9,
"_primary_term" : 5,
"found" : true,
"_source" : {
"name" : "John Doe"
}
}
批量索引文档
如果你有大量文档需要被索引,你可以使用bulk api来批量提交它们。使用bulk来批处理文档操作比提交单个请求快很多,因为批处理缩短了网络时延。
最优的批处理大小依赖很多因素:文档的大小和复杂度、索引和搜索的负载以及集群中的可用资源。批量处理1000-5000个文档,总负载在5M-15M之间是个不错的起点。
批量导入文档的步骤如下:
1、下载官网的accounts.json样例数据集,数据集中保存的是用户的账户信息:
{
"account_number": 0,
"balance": 16623,
"firstname": "Bradshaw",
"lastname": "Mckenzie",
"age": 29,
"gender": "F",
"address": "244 Columbus Place",
"employer": "Euron",
"email": "bradshawmckenzie@euron.com",
"city": "Hobucken",
"state": "CO"
}
2、使用下面的_bulk请求将这些账号信息添加到bank索引:
curl -X POST http://9.25.176.228:8080/bank/_bulk?pretty -H 'content-type:application/json' --data-binary '@accounts.json'
curl http://9.25.176.228:8080/_cat/indices?v
响应显示1000个文档已经被成功索引了: