首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在elasticsearch中导入json文件时,Elasticdump创建一个包含1000个字段的文档

在elasticsearch中导入json文件时,Elasticdump创建一个包含1000个字段的文档
EN

Stack Overflow用户
提问于 2020-10-03 07:46:16
回答 2查看 423关注 0票数 0

有1000个记录从数据库获取并格式化为JSON。我需要在Elasticsearch和autocomplete_entities索引中将每个文档作为文档插入。输入文件如下所示

代码语言:javascript
复制
[
    {
        "id" : 1,
        "title" : "x"
    },
    {
        "id" : 2,
        "title" : "y"
    },
    ...
]

我也有这些设置

代码语言:javascript
复制
PUT _settings
{
    "index.mapping.total_fields.limit" : 10000
}

代码语言:javascript
复制
put autocomplete_entities

现在当我运行这段代码

弹性转储--大容量=真--输入=“PycharmProjects/untitled/v1.json”--output="文档“--output-index="autocomplete_entities”--type=autocomplete_entities --transform="doc._source=Object.assign({},doc)“

它创建一个包含1000个字段的文档,以便每个字段都包含idtitle,如下所示

代码语言:javascript
复制
"took": 9,
"timed_out": false,
"_shards": {
    "total": 5,
    "successful": 5,
    "skipped": 0,
    "failed": 0
},
"hits": {
    "total": 1,
    "max_score": 1,
    "hits": [
        {
            "_index": "autocomplete_entities",
            "_type": "autocomplete_entities",
            "_id": "voVp7XQBq56KEuWZ8JuQ",
            "_score": 1,
            "_source": {
                "0": {
                    "id": 37905,
                     "title": "x"
                },
                "1": {
                    "id": 44093,
                    "title": "y"
                } ...
            }
        }
    ]
}

如何在elasticsearch中导入1000条记录作为1000个文档?

EN

回答 2

Stack Overflow用户

发布于 2020-10-03 10:40:23

您能否为您的autocomplete_entities索引定义如下的映射

代码语言:javascript
复制
{
    "mappings": {
        "properties": {
            "data": {
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "title": {
                        "type": "text"
                    }
                }
            }
        }
    }
}

并查看其索引是否正确,这样可以防止为所有文档创建新字段,请注意,data弹性搜索的对象类型,这就是如何在上面的索引中索引数据:

代码语言:javascript
复制
{
    "data": [
        {
            "id": 1,
            "title": "x"
        },
        {
            "id": 2,
            "title": "y"
        }
    ]
}
票数 0
EN

Stack Overflow用户

发布于 2021-11-25 17:33:44

现在可能有点晚了,但是elasticdump " json“实际上并不是json,而是新行分隔的json,所以您应该在输入文件中设置如下格式的数据:

代码语言:javascript
复制
{"id" : 1,"title" : "x"}
{"id" : 2,"title" : "y"}
...

请注意每行末尾缺少逗号。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64181892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档