【问题标题】:elasticsearch dynamic templates don't match "deep" propertieselasticsearch 动态模板与“深度”属性不匹配
【发布时间】:2015-07-13 13:26:00
【问题描述】:

我开始考虑为推文创建特定的 ES 映射,但很快意识到推文模型的 ES 映射将随着时间的推移而成为一场噩梦,因此我开始考虑动态模板。我已经根据 twitter 对象描述为每个可能的属性注册了一个动态模板。推文是一种非常分层和冗余的格式,这意味着一个属性,比如“created_at”,可能会出现在许多地方——因此维护一个稳定的显式映射是一场噩梦。

到目前为止,在我创建的映射中,我 没有 显式映射(“属性”-属性为空),因为我希望 所有 映射由动态模板。例如,我的“created_at”属性的动态模板如下所示:

{
    "created_at": {
    "match": "created_at",
    "mapping": {
        "format": "EEE MMM d HH:mm:ss Z YYYY",
        "index": "no"
    }
}

我认为拥有这个模板可以处理“created_at”属性的映射,无论它出现在 json 结构中的什么位置。我知道我可以指定“path_match”以明确指定给定的属性实例,但我希望 all 根据上面的模板映射“created_at”属性。

但是 - 当我开始将数据索引到 ES 中时,我会遇到很多错误,如下所示:

Caused by: org.elasticsearch.ElasticsearchIllegalArgumentException: unknown property [created_at]
    at org.elasticsearch.index.mapper.core.StringFieldMapper.parseCreateFieldForString(StringFieldMapper.java:331)
    at org.elasticsearch.index.mapper.core.StringFieldMapper.parseCreateField(StringFieldMapper.java:277)
    at org.elasticsearch.index.mapper.core.AbstractFieldMapper.parse(AbstractFieldMapper.java:399)
    ... 13 more

我在这里做错了什么?

【问题讨论】:

  • 您可以尝试将"match_mapping_type": "*" 添加到created_at 模板中看看效果如何?

标签: templates dynamic elasticsearch mapping


【解决方案1】:

您可以尝试以下示例来设置动态模板:

curl -XPUT localhost:9200/_template/template_for_created_at -d '
{
  "template": "*",
  "mappings": {
    "_default_": {
      "dynamic": true,
      "dynamic_templates": [
        {
          "created_at_tmpl": {
            "match": "created_at",
            "match_mapping_type": "date",
            "mapping": {
              "type": "date",
              "format": "EEE MMM d HH:mm:ss Z YYYY",
              "index": "no",
              "null_value": null
            }
          }
        }
      ]
    }
  }
}'

更多细节和例子可以在这里找到:https://www.elastic.co/guide/en/elasticsearch/reference/1.6/indices-templates.html

【讨论】:

    【解决方案2】:

    很抱歉,我没有将此问题标记为“已解决”!!!!经过一些调查,我设法让它工作。不过还是谢谢你的建议。

    干杯

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-18
      • 2012-06-17
      • 2018-12-11
      • 2021-02-15
      • 2016-08-23
      • 2012-11-15
      • 1970-01-01
      相关资源
      最近更新 更多