簡體   English   中英

ElasticSearch JSON文件導入(批量API)

[英]ElasticSearch JSON file import (Bulk API)

我在StackOverflow上看到了一些與此類似的帖子,但是對於如何將帶有JSON文檔的大文件索引到ElasticSearch中,我仍然不清楚。 我收到如下錯誤:

{"error":"ActionRequestValidationException[Validation Failed: 1: index is missing;2: type is missing;]","status":400}

{"took":231,"errors":false,"items":[{"index":{"_index":"test","_type":"type1","_id":"1","_version":7,"status":200}}]

我有一個大約2Gb的JSON文件,這是我實際上要導入的文件。 但是首先,為了理解Bulk API的工作原理,我創建了一個只有一行實際數據的小文件:

testfile.json

{"index":{"_id":"someId"}} \n
{"id":"testing"}\n

我是從SO上的另一篇文章中得到的。 我知道第一行是標頭,並且我也知道第一行中的“索引”是要發送到ES的命令; 但是,這仍然行不通。 有人可以給我一個有效的例子,並明確說明如何將JSON文件導入ES嗎?

謝謝!

以下示例來自elasticsearch文檔: https ://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html ? q = bulk

{ "index" : { "_index" : "test", "_type" : "type1", "_id" : "1" } }
{ "field1" : "value1" }
{ "delete" : { "_index" : "test", "_type" : "type1", "_id" : "2" } }
{ "create" : { "_index" : "test", "_type" : "type1", "_id" : "3" } }
{ "field1" : "value3" }
{ "update" : {"_id" : "1", "_type" : "type1", "_index" : "index1"} }
{ "doc" : {"field2" : "value2"} }

因此,第一行告訴Elastic將第二行上的文檔索引到索引測試中,使用_id 1輸入type1。它將使用field1索引該文檔。 如果它們都轉到相同的索引和類型,則可以更改URL。 檢查鏈接以獲取樣本。

在第三行中,您將看到一個刪除操作的示例,此文檔在第四行中不需要文檔。

請注意非常大的文檔,因為2 Gb可能很大。 需要先將其發送到彈性,然后再將其加載到內存中。 因此,發送記錄的數量受到限制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM