索引一些文件
集羣啓動並運行後,就可以爲某些數據建立索引了。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": "[email protected]", "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