【问题标题】:Elasticsearch 1.2.1 exception: Root type mapping not empty after parsingElasticsearch 1.2.1 异常:解析后根类型映射不为空
【发布时间】:2014-08-06 21:23:41
【问题描述】:

更新到 Elasticsearch 1.2.1 后,我在以下映射中不断收到以下异常:

{
    "tags": {
        "properties": {
            "tags": {
                "type": "string",
                "index": "not_analyzed"
            }
        }
    }
}

这是个例外:

Caused by: org.elasticsearch.index.mapper.MapperParsingException: Root type mapping not empty after parsing! Remaining fields: [tags : {properties={tags={index=not_analyzed, type=string}}}]
    at org.elasticsearch.index.mapper.DocumentMapperParser.parse(DocumentMapperParser.java:265)
    at org.elasticsearch.index.mapper.DocumentMapperParser.parseCompressed(DocumentMapperParser.java:189)
    at org.elasticsearch.index.mapper.MapperService.parse(MapperService.java:387)
    at org.elasticsearch.index.mapper.MapperService.merge(MapperService.java:253)
    at org.elasticsearch.cluster.metadata.MetaDataCreateIndexService$2.execute(MetaDataCreateIndexService.java:363)

这是为什么呢?

【问题讨论】:

    标签: java exception elasticsearch


    【解决方案1】:

    @Mark 这似乎是 1.2.X 中的一个错误。已经有多个其他人报告了类似的问题,我将链接到下面的票证。基本上,他们似乎加强了 1.2.X 中映射的语法,但它们似乎对以前有效的映射造成了一些问题。你的就是一个例子。

    我建议你打开一个错误报告 - 更多的数字力量。如果您开票,很高兴说“我也是”,因为我在 1.2.1 上重现了这个问题。

    目前,我已经能够执行以下操作,我相信这会给您带来相同的预期结果:

    curl -XPUT localhost:9200/yourindexname -d 
    '{
       "mappings":
       {
        "tags":
          {
           "properties":
             {
              "tags":
                {
                 "type":"string",
                 "index":"not_analyzed"
                }
              }
            }
        }
    }'
    

    门票:

    https://github.com/elasticsearch/elasticsearch/issues/6414

    https://github.com/elasticsearch/elasticsearch/issues/6304

    https://github.com/elasticsearch/elasticsearch/issues/6415

    【讨论】:

    • 感谢您的回答,对我帮助很大!
    • 当我尝试你的建议时,我得到“{“error”:“IndexAlreadyExistsException[[indexName] already exists]”,“status”:400}”。有什么想法吗?
    • @KartikeyaSinha 您可能尝试使用现有名称创建新索引。
    【解决方案2】:

    这对你有帮助

    你会得到你想做的事

    curl -XPUT localhost:9200/new_index -d '
    {
      "mappings": { 
        "tags": {
          "properties": {
            "tags": { 
               "type":"string",
               "index":"not_analyzed"
            }
          }
        }
      }
    }'
    

    或者你也可以这样做

    curl -XPUT localhost:9200/new_index/new_index_type/_mappings -d '
    {
      "new_index_type": {
        "properties": {
          "tags": {
            "type": "string",
            "index": "not_analyzed"
          }
        }
      }
    }'
    

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题,因为我在弹性 config/mappings 目录中有 相同类型 的映射。 删除映射文件解决了我的问题。

      【讨论】:

      • 这也为我在 1.7 上修复了它。如上所述,我在配置中只有一个映射,但我也在我的 logstash 配置的 elasticsearch 输出的模板参数中明确设置了相同的映射。
      猜你喜欢
      • 2021-11-04
      • 1970-01-01
      • 2020-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-04
      • 1970-01-01
      • 2019-10-14
      相关资源
      最近更新 更多