Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Templates elasticsearch动态模板不';“t匹配”;“深”;性质_Templates_Dynamic_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Mapping - Fatal编程技术网 elasticsearch,mapping,Templates,Dynamic,elasticsearch,Mapping" /> elasticsearch,mapping,Templates,Dynamic,elasticsearch,Mapping" />

Templates elasticsearch动态模板不';“t匹配”;“深”;性质

Templates elasticsearch动态模板不';“t匹配”;“深”;性质,templates,dynamic,elasticsearch,mapping,Templates,Dynamic,elasticsearch,Mapping,我开始考虑为tweet创建一个特定的ES映射,但很快意识到tweet模型的ES映射随着时间的推移将成为一个需要维护的噩梦,所以我开始考虑动态模板。我已经根据twitter对象描述为每个可能的属性注册了一个动态模板。tweet是一种非常分层和冗余的格式,这意味着一个属性(比如“created_at”)可能存在于多个位置,因此维护稳定的显式映射是一场噩梦 在迄今为止我创建的映射中,我有无显式映射(“属性”-属性为空),因为我希望所有映射由动态模板控制。例如,“created_at”属性的动态模板如下

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

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

{
    "created_at": {
    "match": "created_at",
    "mapping": {
        "format": "EEE MMM d HH:mm:ss Z YYYY",
        "index": "no"
    }
}
我认为拥有这个模板将负责“created_at”属性在json结构中的映射。我知道我可以指定“路径匹配”以明确指定给定属性实例,但我希望all根据上面的模板映射“created\u 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

我做错了什么?

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

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
            }
          }
        }
      ]
    }
  }
}'

更多的细节和例子可以在这里找到:

很抱歉,我没有将这个问题标记为“已解决”!!!!经过一些调查,我设法使它工作起来。谢谢你的建议

干杯

您可以尝试将
匹配映射类型“*”
添加到
模板中创建的
中,并查看其运行情况吗?