我有一个带有MongoDB的Nodejs应用程序。现在我想使用Elasticsearch将数据从mongo复制到Elasticsearch。我正在使用npm软件包“ElasticSearch”。例如,对于收藏“帖子”,我有这样的:
items: [
{
_id: '111111111111',
title: 'test1',
status: true,
},
{
_id: '22222222',
title: 'test2',
status: 0,
},
{
_id: '333333333',
title: 'test1',
status: {published: trye},
}
]
正如您所看到的,我的数据是非结构化的,并且Elasticsearch在我添加这些项时显示了错误。我想要一个把戏关闭弹性搜索限制,允许我添加这些数据。我不能改变我的数据它是巨大的。有解决办法吗?
它会给您带来错误,因为status
字段首先是一个布尔值,其次是一个数字,最后是一个对象->映射冲突。如果您不想更改数据,我假设您不希望搜索显示冲突的字段(您如何能够一致地查询一个可能是任何内容的字段?)。那么,我的最佳建议是存储冲突字段,而不对其进行索引。这意味着您将在文档中看到它们,但您将无法查询它们或聚合它们。若要禁用索引,请将它们的映射类型设置为object
,并将enabled
映射属性设置为false(请参阅文档)。
如果您希望能够查询或聚合所有内容,则必须进行一致的预处理数据的额外工作。