【问题标题】:Put unstructured data to Elasticsearch将非结构化数据放入 Elasticsearch
【发布时间】:2021-06-16 00:18:11
【问题描述】:

我有一个带有 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 向我显示错误。我想要一个技巧来关闭 Elasticsearch Restriction 并允许我添加这些数据。我无法对我的数据进行巨大的更改。 有什么解决办法吗?

【问题讨论】:

    标签: node.js mongodb elasticsearch


    【解决方案1】:

    它会给您错误,因为您的 status 字段首先是布尔值,其次是数字,最后是对象 -> 映射冲突。如果您不想更改数据,我假设您不希望搜索显示冲突的字段(您如何始终查询可能是任何内容的字段?)。然后,我最好的建议是存储冲突字段而不对其进行索引。这意味着您将在文档中看到它们,但您将无法查询它们或对它们进行聚合。要禁用索引,请将它们的映射类型设置为 Object,并将 enabled 映射属性设置为 false(请参阅 Docs)。

    如果您希望能够查询或汇总所有内容,则必须付出额外的努力以一致地预处理数据。

    【讨论】:

    • 我添加了另一个答案,包括我的映射架构,但仍然有问题!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-10
    • 2015-10-09
    • 1970-01-01
    • 2014-11-20
    相关资源
    最近更新 更多