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

摄取管道中的“我的文档”字段是什么类型?

方河
2023-03-14

我有码头工人-

我正在使用Elasticsearch摄取管道来处理我的日志(在Filebeat发送它们之后)。

在我的日志中,有一个消息字段和有效负载字段。这是有趣的部分:

负载有时是对象,有时是字符串

现在,ES显然不允许映射中出现这种类型的冲突,因此每天首先进入我的索引的任何类型都会进入,而另一种类型将无效并抛出错误。我想以以下方式处理这个问题:

    < li >检查有效载荷字段的类型 < li >如果是字符串,将其嵌套到payload.text字段中

我不知道如何进行“嵌套”,也没有找到任何方法来类型检查有效负载字段。

这是否根本不受支持?我必须为此添加Logstash吗?或者它可以在Filebeat方面解决吗?

编辑:提到的摄取管道

共有1个答案

章越
2023-03-14

在您的摄取节点中,您将创建GROK过滤器,并根据找到的模式决定将值放在哪里。

记住,如果你想强制字段类型,你可以使用这个结构:

%{FAVORITE_DOG:pet:int}
%{FAVORITE_DOG_text:pet:string}

例如,如果您想解析一个字段并决定根据类型放入两个不同的字段。这里我定义了两种不同的模式:

P1(For integers): "My value is=%{NUMBER:my_variable_int:int}"
P2(For text):"My value is=%{WORD:my_variable_text:string}

ps。:%{NUMBER}和%{WORD}是常见的正则表达式规则

ps2.:顺序很重要,试着把整数放在第一位,因为字符串总是会被识别......

示例:

log1: "My value is=10"
log2: "My value is=SOME_TEXT"


{
  "description" : "...",
  "processors": [
    {
      "grok": {
        "field": "message",
        "patterns": ["My value is=%{NUMBER:my_variable_int:int}","My value is=%{WORD:my_variable_text:string}"]
      }
    }
  ]
}

来源:https://www . elastic . co/guide/en/elastic search/reference/master/grok-processor . html

 类似资料:
  • 问题内容: 还有一种特殊的文字,称为类文字,它通过使用类型名称并附加“ ”来形成;例如,。这是指代表类型本身的(类型为)对象。 该文字可以分配给什么类型的变量? 如果可能,请举一个小例子。 问题答案: 查看Javadocjava.lang.Class以了解你可以使用其中一个小家伙做什么-主要与反思有关

  • 问题内容: SQL中BIGINT字段类型的限制是什么? 100000235882380或100000466411115是否可以接受?(这是来自Facebook的ID) 问题答案: 查看所使用的RDBMS的手册。并非在所有系统中都相同。 MySQL:https: //dev.mysql.com/doc/refman/5.7/en/integer- types.html PostgreSQL:http

  • 问题内容: 如标题所述,有哪些不同的文档类型?它们的含义是什么?我注意到从切换到IE7时,布局看起来有些不同 至 还有其他的吗?影响或后果是什么? 谢谢! 问题答案: 一个 文档类型 或 文档类型声明 关联与文档 的文档类型定义 。 该 文档类型定义 是一个XML文档的标准。XML和XHTML文档都有许多DTD。XML本身并没有太多的架构或一组非常具体的规则,除了要求一切都必须格式正确。您可以将D

  • 如果文档集合包含: 我想构建一个聚合,通过我的myDocRefId字段只返回没有被任何其他文档引用的文档。对于这个集合,我想返回: 文档1在聚合中被删除,因为文档3具有对它的引用。 如何在聚合管道中实现这一点?

  • 我为我的Gridview调用了一个javascript,但它看起来像文档。所有这些在Chrome/Firefox中都不起作用。 我可以用什么来代替它?非常感谢。

  • 由于是16位,我猜这里的“Unicode”是指UTF-16,但我一点也不确定。 更新:我注意到UTF-16的维基页面上说“Unicode”是我们现在所知道的UCS-2的旧术语。然而,它也说Java现在使用UTF-16。因此,我仍然怀疑JNI文档中的“Unicode”是指标准的UTF-16,但我通常不使用JNI甚至Java,所以我希望有人觉得权威来插话。