簡體   English   中英

Elasticsearch批量JSON數據

[英]Elasticsearch Bulk JSON Data

這個問題來自這個SO線程

正如@Val建議的那樣,我似乎有一個相似但不相同的查詢,最好有一個單獨的問題讓其他人受益。

因此,與上述類似,我需要在索引中插入大量數據(我的初始測試大約是10 000個文檔,但這僅適用於POC,還有更多)。 我想插入的數據是在.json文檔中,看起來像這樣(片段):

[ { "fileName": "filename", "data":"massive string text data here" }, 
  { "fileName": "filename2", "data":"massive string text data here" } ]

根據我自己的承認,我是ElasticSearch的新手,但是,通過閱讀文檔,我的假設是我可以獲取.json文件並從其中的數據創建索引。 我現在知道,似乎json中的每個項目都需要有一個“標題”,如:

{"index":{}}
{ "fileName": "filename", "data":"massive string text data here" }

這意味着,這不是實際的json格式(如此),而是操縱字符串。

我想知道是否有一種方法可以按原樣import我的json數據(以json格式),而不必先手動操作文本(因為我的測試數據有10 000個條目,我相信你能明白為什么我我不喜歡手動這樣做。

任何建議或建議的自動化工具來幫助解決這個問題

PS - 我正在使用Windows安裝程序和Postman進行通話。

您可以使用像這樣的shell命令輕松轉換文件。 如果您的文件名為input.json ,則可以執行以下操作:

jq -c -r ".[]" input.json | while read line; do echo '{"index":{}}'; echo $line; done > bulk.json

在此之后,您將擁有一個名為bulk.json的文件,該文件已正確格式化以發送到批量端點。

然后,您可以像這樣調用批量端點:

curl -XPOST localhost:9200/your_index/your_type/_bulk -H "Content-Type: application/x-ndjson" --data-binary @bulk.json

注意:如果您還沒有jq則需要先安裝jq

暫無
暫無

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

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