将elasticsearch配置为不索引字段并将其视为对象

时间:2015-04-16 08:51:28

标签: json elasticsearch logstash gsub

我有一种情况需要将一些动态数据(其形状无法确定且非常随机)放入弹性搜索实例

例如:

       LOG_DATA": {
        "\u0000*\u0000message": "=",
        "\u0000*\u0000code": 0,
        "\u0000*\u0000file": "/JEntity/Logger/RedwineLogger.php",
        "\u0000*\u0000line": 205,
        "\u0000Exception\u0000trace": [
          {
            "function": "aliceShutdownHandler",
            "args": []
          }
        ],
        "\u0000Exception\u0000previous": null,
        "\u0000*\u0000severity": 1
      },
      "Message": "Uncaught exception 'ErrorException' ",
      "File": "/shop/www/htdocs/shop.live",
      "Line": 205,
      "STACK_TRACE": "#0 [internal function]: aliceShutdownHandler()\n#1 {main}",
      "customer_session_id": "tcph057qgkme8u0vv3tc5c1bf63ebvk7",
      "DeviceOS": "Unknown OS Platform",
      "NAMESPACE": "default",
      "index_date": "2015.04.16"

这是我从我的一个服务获得的日志,并且该服务将其推送到rabbitmq。

logstash实例正在侦听此队列,并在稍微修改后将数据推送到弹性搜索。

  • 我发现LOG_DATA有很多" \ u0000"在字段名称和值。如何删除" \ u0000";

  • LOG_DATA可以包含任何数据,并且它会保持变化和不可预测。我不希望elasticsearch索引这些数据,只需按原样存储即可。字段的类型是不可预测的。但弹性搜索使用第一个文档字段映射创建了一个索引,之后我总是得到字段映射异常。如何使ES不检查类型而不为该字段做索引。

    • 如何删除LOG_DATA。\ u0000Exception \ u0000trace.args field

如果我能洞察这些问题,将会非常有帮助

0 个答案:

没有答案