索引一些文档
集群启动并运行后,就可以为某些数据建立索引了。Elasticsearch有多种摄取选项,但最终它们都做同样的事情:将JSON文档放入Elasticsearch索引中。
您可以使用简单的PUT请求直接执行此操作,该请求指定要添加文档的索引,唯一的文档ID以及"field": "value"
请求正文中的一对或多 对:
PUT /customer/_doc/1
{
"name": "Runoops.com"
}
如果该请求customer
尚不存在,此请求将自动创建该索引,添加ID为的新文档1
,并存储该name
字段并为其建立索引。
由于这是一个新文档,因此响应显示该操作的结果是创建了该文档的版本1:
{
"_index": "customer",
"_type": "_doc",
"_id": "1",
"_version": 1,
"result": "created",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 0,
"_primary_term": 1
}
查看索引下的文档:
GET /customer/_doc/1
结果:
{
"_index": "customer",
"_type": "_doc",
"_id": "1",
"_version": 1,
"_seq_no": 0,
"_primary_term": 1,
"found": true,
"_source": {
"name": "Runoops.com"
}
}
批量索引文件
如果您有很多要编制索引的文档,则可以使用批量API批量提交。使用批量处理批处理文档操作比单独提交请求要快得多,因为它可以最大程度地减少网络往返次数。
最佳批处理大小取决于许多因素:文档大小和复杂性,索引编制和搜索负载以及群集可用的资源。一个好的起点是批处理1,000至5,000个文档,总有效负载在5MB至15MB之间。从那里,您可以尝试找到最佳位置。
要将一些数据导入Elasticsearch,您可以开始搜索和分析:
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.bank
使用以下_bulk
请求将帐户数据索引到索引中:
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
green open bank Pxcgd6mnROWh8XNTq-SlLw 1 1 1000 0 926kb 462.8kb