2016-09-21 93 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。它没有显示我的数据.../_搜索。 –