elasticsearch - 是否可以在ElasticSearch中为内部对象定义默认映射?

标签 elasticsearch

说我有一个像这样的文件:

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

是否可以指定将events.props.version映射为某种类型?

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

但这似乎不起作用。

最佳答案

请查看elasticsearch Mapping API中的mapping API。

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

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

如果这不起作用,请为我提供映射。

关于elasticsearch - 是否可以在ElasticSearch中为内部对象定义默认映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30462182/

相关文章:

elasticsearch - 搜索两个字段,但在Elasticsearch中仅得分一次

elasticsearch - 全文搜索的字段优先级

rest - 预期 [START_OBJECT] 在 [filter] 下

elasticsearch - Elasticsearch for Packetbeat的最低版本应该是什么

elasticsearch - Elasticsearch通配符并按查询的精确度对其进行排序

ruby-on-rails - 如何使用 elasticsearch-rails 为多对多关联设置映射

node.js - 使用Node JS在Elasticsearch 7.3.2中创建自定义映射类型

elasticsearch - 在为大型数据建立索引时,如果我再次删除索引ElasticSearch并创建索引并为文档建立索引而不是给Index不存在

c# - 如何使用 NEST 通过谓词删除所有文档

elasticsearch - Elasticsearch长短语搜索