是否可以在elasticsearch中为内部对象定义默认Map?

xpcnnkqh  于 2021-06-14  发布在  ElasticSearch
关注(0)|答案(2)|浏览(348)

假设我有这样一份文件:

{
    "events" : [
        { 
         "event_id" : 123,
         "props" : {
              "version": "33"
        },
        {
         "event_id" : 124,
         "props" : {
              "version": "44a"
         }
    ]
}

是否可以指定 events.props.version 是否Map到某个类型?
我试过:

{
  "template" : "logstash-*",
  ...
  "mappings" : {
    "_default_" : {
       "properties" : {
         "events.props.version" : { "type" : "string" }
       }
    }
  }
}

但这似乎行不通。

zf9nrax1

zf9nrax11#

请看一看 mapping elasticsearchMapapi中的api。
要在内部元素中设置任何分析器,我们需要将每个内部字段视为一个单独的属性集。请尝试以下操作

{
    "mappings": {
        "properties": {
            "events": {
                "properties": {
                    "event_id": {
                        "type": "string",
                        "analyzer": "keyword"
                    },
                    "props": {
                        "properties": {
                            "version": {
                                "type": "string"
                            }
                        }
                    }
                }
            }
        }
    }
}

如果这不起作用,请提供给我你的Map。

bxgwgixi

bxgwgixi2#

当然,但您需要使用“object”类型:
从文件(https://www.elastic.co/guide/en/elasticsearch/reference/1.5/mapping-object-type.html )如果你想要Map

{
    "tweet" : {
        "person" : {
            "name" : {
                "first_name" : "Shay",
                "last_name" : "Banon"
            },
            "sid" : "12345"
        },
        "message" : "This is a tweet!"
    }
}

你可以写:

{
    "tweet" : {
        "properties" : {
            "person" : {
                "type" : "object",
                "properties" : {
                    "name" : {
                        "type" : "object",
                        "properties" : {
                            "first_name" : {"type" : "string"},
                            "last_name" : {"type" : "string"}
                        }
                    },
                    "sid" : {"type" : "string", "index" : "not_analyzed"}
                }
            },
            "message" : {"type" : "string"}
        }
    }
}

相关问题