有1000个记录从数据库获取并格式化为JSON。我需要在Elasticsearch和autocomplete_entities索引中将每个文档作为文档插入。输入文件如下所示
[
{
"id" : 1,
"title" : "x"
},
{
"id" : 2,
"title" : "y"
},
...
]我也有这些设置
PUT _settings
{
"index.mapping.total_fields.limit" : 10000
}和
put autocomplete_entities现在当我运行这段代码
弹性转储--大容量=真--输入=“PycharmProjects/untitled/v1.json”--output="文档“--output-index="autocomplete_entities”--type=autocomplete_entities --transform="doc._source=Object.assign({},doc)“
它创建一个包含1000个字段的文档,以便每个字段都包含id、title,如下所示
"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个文档?
发布于 2020-10-03 10:40:23
您能否为您的autocomplete_entities索引定义如下的映射
{
"mappings": {
"properties": {
"data": {
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "text"
}
}
}
}
}
}并查看其索引是否正确,这样可以防止为所有文档创建新字段,请注意,data是弹性搜索的对象类型,这就是如何在上面的索引中索引数据:
{
"data": [
{
"id": 1,
"title": "x"
},
{
"id": 2,
"title": "y"
}
]
}发布于 2021-11-25 17:33:44
现在可能有点晚了,但是elasticdump " json“实际上并不是json,而是新行分隔的json,所以您应该在输入文件中设置如下格式的数据:
{"id" : 1,"title" : "x"}
{"id" : 2,"title" : "y"}
...请注意每行末尾缺少逗号。
https://stackoverflow.com/questions/64181892
复制相似问题