在弹性搜索中如何具有相同字段的两种数据类型?

时间:2019-07-15 09:20:37

标签: elasticsearch

我在弹性搜索中有一个名为track的索引,它的映射是这样的

"track" : {
  "mappings" : {
    "properties" : {
      "attributes" : {
        "type" : "nested",
        "properties" : {
          "name" : {
            "type" : "keyword"
           },
          "value" : {
            "type" : "keyword"
          }
        }
      }
    }
  }
} 

以上映射的有效记录为

"attributes" : [
  {
    "name" : "attr1",
    "value" : "val1"
  },
  {
    "name" : "attr2",
    "value" : "val2"
  }
]

我希望上述映射也以某种方式支持以下记录。

"attributes" : [
  {
    "name" : "attr3",
    "value" : "val3"
  },
  {
    "name" : "attr4",
    "value" : {
      "owner": {
        "username": "user1",
        "group": "group1"
      }
    }
  }
]

我知道我已经用类型keyword定义了我的value字段,它不支持对象,但是必须有某种方法可以做到这一点,对吗?我到处都在寻找,唯一可以找到的相关内容是this。但是这里的类型非常简单,分别为doubledate,在我的情况下,我希望类型为keywordobject

我只想为其值可以是文本或对象的字段创建一个映射。我正在使用Logstash和Kibana的Elastic search v7.1.0。这有可能吗?如果是,那怎么办?

0 个答案:

没有答案