当前位置: 首页 > 知识库问答 >
问题:

将非结构化数据放入Elasticsearch

邴宏大
2023-03-14

我有一个带有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在我添加这些项时显示了错误。我想要一个把戏关闭弹性搜索限制,允许我添加这些数据。我不能改变我的数据它是巨大的。有解决办法吗?

共有1个答案

雍志文
2023-03-14

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

如果您希望能够查询或聚合所有内容,则必须进行一致的预处理数据的额外工作。

 类似资料:
  • 本文向大家介绍结构化,半结构化和非结构化数据之间的差异,包括了结构化,半结构化和非结构化数据之间的差异的使用技巧和注意事项,需要的朋友参考一下 在大数据方面,我们知道它处理大量数据及其执行。简而言之,我们可以说大数据是一种处理大量数据的事物,并且由于数据量如此之大,因此从广义上讲,根据数据的组织方式定义了三类,即结构化,半结构化和非结构化数据。 现在,根据组织数据的级别,我们可以发现这三种类型的数

  • 问题内容: 背景 我想通过python客户端API将换行格式的JSON插入/添加到表中。 例如: 问题是,一行中的所有字段都是可选的,并且没有针对数据的固定定义模式。 询问 我已经读过我们可以使用支持自动模式检测的联合表。 但是,我正在寻找一种功能,该功能将自动从数据中检测模式,相应地创建表,甚至在数据中出现任何额外的列/键而不是创建新表时甚至调整表模式。 使用python客户端API是否有可能。

  •        相对于结构化数据(即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据)而言,不方便用数据库二维逻辑表来表现的数据即称为非结构化数据,包括所有格式的办公文档、文本、图片、XML、HTML、各类报表、图像和音频/视频信息等等。        非结构化数据库是指其字段长度可变,并且每个字段的记录又可以由可重复或不可重复的子字段构成的数据库,用它不仅可以处理结构化数据(如数字、符

  • 问题内容: 我正在尝试使用该方法来简单地读入Swift 4 。问题 网络UDP数据包具有以下格式: 然后我有一个扩展名,需要一个和个要读取的字节 当一一读取值时,这可以正常工作: 然后我创建了一个代表整个数据包的,如下所示 但是,当我直接将数据读入结构时,我遇到了一些问题: 我应该像这样解析整个结构吗? 问题答案: 从数据读取整个结构不起作用,因为struct成员被 填充 到其自然边界。的内存布局

  • 我试图收集到JSON的html表单输入。 我试图用jQuery来实现它,它对简单的输入名可以工作,但是如果我有多维输入名,就像

  • 这是我运行strm.py文件的终端命令 $spark_home/bin/spark-submit--主本地--驱动程序-内存4G--num-executors 2--executor-memory 4G--包org.apache.spark:spark-sql-kafka-0-102.11:2.4.0 org.apache.spark:spark-cassandra-connector2.11:2