具有不同类型的 Elasticsearch 字段

Elasticsearch Field with different types

我尝试为我的异构数据创建一个索引模板。有没有一种方法可以使用有时是列表列表的字段来摄取文档:

{
  "xx_response_body": [
    [
      123123,
      ...
    ],
    [
      12312344,
      ...
    ],
    
    ....
  ],
  "Content-Type": "application/json",
  "Vary": "Cookie",
  "x-xss-protection": "1; mode=block"
}

有时是一个对象:

{
  "xx_response_body": {
    "abc": "error",
    "def": "content",
    "hij": {}
  },
  "Content-Type": "application/json",
  "x-xss-protection": "1; mode=block"
}
``

您最好为这些类型的字段创建不同的字段或将您的数据存储在单独的索引中,您未来的自己会感谢您。

还有 flattened 可能有用的数据类型,但我过去没有用过。

另一种替代方法是将此信息存储为字符串,并根据需要使用 runtime fields 提取这些字段,但这总是比实际索引它们慢。