在使用Elasticsearch(簡稱ES)的過程中,經常要導入JSON數據,此篇文章就是介紹如何導入JSON文件到ES中。
首先,需要安裝一個插件——Bulk Import插件。
bin/plugin install elasticsearch/elasticsearch-mapper-attachments/2.5.0
接下來,準備好JSON文件,可以是一行一行的json數據,也可以是包含多個json數據的文件。
打開ES的控制臺,使用以下命令導入JSON文件:
curl -XPOST 'http://localhost:9200/目標index/_bulk?pretty' --data-binary @文件路徑
其中,目標index是導入的目標index的名稱,文件路徑是JSON文件的絕對路徑,執行過程中會輸出導入成功的文檔數和響應時間。
另外,如果JSON文件中的屬性與index的mapping不一致,也需要提前給index手動設置對應的mapping,否則導入時會出現異常。
用以下命令手動設置mapping:
curl -XPUT 'http://localhost:9200/目標index/目標type/_mapping' -d ' { "目標type": { "properties": { "需要自動mapping的屬性": { "type": "指定屬性的類型" } } } }'
其中,目標type是導入文檔的目標type名稱,需要自動mapping的屬性是JSON文件中需要自動mapping的屬性名稱,指定屬性的類型是該屬性的數據類型。
以上就是導入JSON文件到ES中的方法和注意事項,如果您在使用中遇到問題,可以參照本文對應方法排查。