集群启动并运行后,您就可以为一些数据建立索引了。 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"
}
}
批量索引文件
如果要索引的文档很多,则可以使用 bulk API 批量提交它们。使用批量处理批处理文档操作比单独提交请求要快得多,因为它可以最大程度地减少网络往返次数。
最佳批处理大小取决于许多因素:文档大小和复杂性,索引编制和搜索负载以及群集可用的资源。在 1000 至 5000 个文档数量范围内,且总有效负载在 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"响应表明成功索引了 1000 个文档。
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
详情见官网:www.elastic.co/guide/en/el…
翻译不准请多指教,翻译不易请勿盗用,如使用请标明出处