索引一些文件
集群启动并运行后,就可以为某些数据建立索引了。Elasticsearch有多种摄取方式,但最终它们都做同样的事情:将JSON文档放入Elasticsearch索引中。
您可以通过一个简单的PUT请求直接执行此操作,该请求指定要添加文档的索引,唯一的文档ID以及"field": "value"
请求正文中的一对或多对:
PUT /customer/_doc/1
{
"name": "John Doe"
}
如果该请求customer
尚不存在,该请求将自动创建该索引,添加ID为的新文档1
,并存储该name
字段并为其建立索引。
由于这是一个新文档,因此响应显示该操作的结果是创建了该文档的版本为1:
{
"_index" : "customer",
"_type" : "_doc",
"_id" : "1",
"_version" : 1,
"result" : "created",
"_shards" : {
"total" : 2,
"successful" : 2,
"failed" : 0
},
"_seq_no" : 26,
"_primary_term" : 4
}
可以从群集中的任何节点立即使用新文档。您可以使用指定其文档ID的GET请求检索它:
GET /customer/_doc/1
该响应表明找到了具有指定ID的文档,并显示了已索引的原始源字段。
{
"_index" : "customer",
"_type" : "_doc",
"_id" : "1",
"_version" : 1,
"_seq_no" : 26,
"_primary_term" : 4,
"found" : true,
"_source" : {
"name": "John Doe"
}
}
批量索引文件
如果您有很多要索引的文档,则可以使用批量API批量提交。使用批量处理批处理文档操作比单独提交请求要快得多,因为它可以最大程度地减少网络往返次数。
最佳批处理大小取决于许多因素:文档大小和复杂性,索引编制和搜索负载以及群集可用的资源。一个好的起点是批处理1,000至5,000个文档,总有效负载在5MB至15MB之间。从那里,您可以尝试找到最佳位置。
要将一些数据导入Elasticsearch,您可以开始搜索和分析:
- 下载
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" }
-
使用以下
_bulk
请求将帐户数据索引到bank中:curl -H "Content-Type: application/json" -XPOST "localhost:9200/bank/_bulk?pretty&refresh" --data-binary "@accounts.json" curl "localhost:9200/_cat/indices?v"
-
响应表明成功索引了1,000个文档。
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size yellow open bank l7sSYV2cQXmu6_4rJWVIww 5 1 1000 0 128.6kb 128.6kb