2016-09-21 135 views
1

我用導入JSON文件elasticsearch

curl -XPOST "http://localhost:9200/<my_index_name>" -d @<absolute_path_to_my_json_file>

然後,當我試圖使用來獲取數據

​​

它給我的數據只爲我的JSON文件的第一行。 (包括其他的東西 - 設置,映射,別名等)。 但爲什麼它無法加載整個json文件? 順便說一句,我正在使用ES 2.4.0。如果我必須使用批量,那麼語法是什麼?

+0

而不是'-d'您通過捲曲發送文件時需要使用'--data-binary'。 – Val

+0

嘗試使用--data-binary。它給出了{「確認」:true}。但是當我使用get命令查看數據時。它在第二次擊中時爲空。使用此命令 - curl -XGET「http:// localhost:9200//_search?pretty = true」 –

+0

我想在此添加一件事。當我使用ES 1.4.4時,我能夠看到數據。現在我改爲2.4.0。它沒有顯示我的數據.../_搜索。 –

回答

0

你能分享你的json結構嗎?在你的例子中,你只需設置一個索引名稱。 要將沒有類型和id值的數據注入到URI中,您必須在json文件中定義它們。

欲瞭解更多信息: Import/Index a JSON file into Elasticsearch

+0

我的json文件在每一行中有一個元素(一行中有一個元素,而不是多行)。每行(元素)都有許多鍵:值對。這是我在json文件中的所有內容。那麼如何在json文件中定義類型和id? –

+0

使用Bulk API'curl -s -XPOST localhost:9200/_bulk --data-binary @'並在json的每行之前添加{{「index」:{「_index」:「< 「,」_type「:」「,」_id「:」「}} https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html – NicolasY

+0

不知道問題出在我的json文件本身。但是在發佈之後,我使用了GET命令來查看我的數據。它顯示一個額外的ID。可能是什麼問題呢 ?它的工作很好,但一些json文件。無論如何,非常感謝尼古拉斯。 –

0

GET index實際上並沒有進行搜索。

您還需要運行諸如GET index/_search之類的東西。

+0

我想在這裏添加一件事。當我使用ES 1.4.4時,我能夠看到數據。現在我改爲2.4.0。它沒有顯示我的數據.../_搜索。 –