我是Elasticsearch的新手,并且一直在手动输入数据,直到此时为止.例如,我做过这样的事情:
$ curl -XPUT 'http://localhost:9200/twitter/tweet/1' -d '{
"user" : "kimchy",
"post_date" : "2009-11-15T14:12:12",
"message" : "trying out Elastic Search"
}'
Run Code Online (Sandbox Code Playgroud)
我现在有一个.json文件,我想把它编入Elasticsearch.我也尝试过类似的东西,但没有成功:
curl -XPOST 'http://jfblouvmlxecs01:9200/test/test/1' -d lane.json
Run Code Online (Sandbox Code Playgroud)
如何导入.json文件?是否需要先采取步骤以确保映射正确?
我正在尝试JSON在我的elasticsearch实例中插入一个数据文件。
curl -s -H “Content-Type: application/x-ndjson” -XPOST localhost:9200/_bulk —-data-binary “@restaurants.json”; echo
但是,在执行此命令后,我收到一条错误消息,指出
{"error":{"root_cause":[{"type":"parse_exception","reason":"request body is required"}],"type":"parse_exception","reason":"request body is required"},"status":400}
JSON 文件基本上具有以下对象的数组。唯一的问题是我在这里只放了一个对象以节省空间。但是,存在不止一个对象。
结构如下所示;
[
{
"address": {
"building": "351",
"coord": [
-73.98513559999999,
40.7676919
],
"street": "West 57 Street",
"zipcode": "10019"
},
"borough": "Manhattan",
"cuisine": "Irish",
"name": "Dj Reynolds Pub And Restaurant",
"grades": [
{
"date": {
"$date": "2014-09-06T00:00:00.000Z"
},
"grade": "A",
"score": 2
},
{
"date": {
"$date": "2013-07-22T00:00:00.000Z"
},
"grade": "A",
"score": 11
},
{
"date": …Run Code Online (Sandbox Code Playgroud) 这个问题来自这个SO线程。
似乎我有一个相似但不相同的查询,因此最好像@Val建议的那样让其他人从中受益。
因此,类似于上述内容,我需要在索引中插入大量数据(我的初始测试大约是10000个文档,但这只是针对POC,还有更多)。我想插入的数据在.json文档中,看起来像这样(片段):
[ { "fileName": "filename", "data":"massive string text data here" },
{ "fileName": "filename2", "data":"massive string text data here" } ]
Run Code Online (Sandbox Code Playgroud)
我个人承认,我是ElasticSearch的新手,但是,从阅读文档开始,我的假设是我可以获取.json文件并根据其中的数据创建索引。从那以后,我了解到json中的每个项目似乎都需要有一个“标头”,例如:
{"index":{}}
{ "fileName": "filename", "data":"massive string text data here" }
Run Code Online (Sandbox Code Playgroud)
意思是,这不是实际的json格式(如此),而是操纵的字符串。
我想知道是否有一种方法可以直接获取importjson数据(采用json格式),而不必先手动操作文本(因为我的测试数据有10000个条目,我敢肯定,你会明白为什么我d不想手动执行此操作)。
有什么建议或建议的自动化工具来帮助您吗?
PS-我正在使用Windows Installer和Postman进行通话。