当前位置: 首页 > 面试题库 >

ElasticSearch PutMapping API:MapperParsingException解析后,根类型映射不为空

何飞翰
2023-03-14
问题内容

我在ES 1.3.4和JDBC For MySql 1.3.4.4的本地实例上拥有River

这条河工作得很好,并在ES中导入数据。我遇到的问题是我的一个字段是文本字段,并且其中包含空格。例如“实时计算器”。ES将其索引为“实时”,“时间”和“计算器”,而不是“实时计算器”。

所以我正在使用下面提到的JSON创建映射:

{
    "sale_test": {
        "properties": {
            "Client": {
                "index": "not_analyzed",
                "type": "string"
            },
            "OfferRGU": {
                "type": "long"
            },
            "SaleDate": {
                "format": "dateOptionalTime",
                "type": "date"
            },
            "State": {
                "type": "string"
            }
        }
    }
}

和命令:

curl -XPUT http://localhost:9200/my_index/_mapping/my_type

但是我得到以下提到的错误:

> {"error":"MapperParsingException[Root type mapping not empty after
> parsing! Remaining fields:   [sale_test :
> {properties={Client={type=string, index=not_analyzed},
> OfferRGU={type=long}, SaleDate={type=date, format=dateOptionalTime},
> State={type=string}}}]]","status":400}

当我尝试使用下面提到的命令查看当前映射时:

curl -XGET http://localhost:9200/dgses/sale_test_river/_mapping

我只有这个: {}

谢谢你的帮助。


问题答案:

您的类型不一致,在API调用中,类型为 my_type

curl -XPUT http://localhost:9200/my_index/_mapping/my_type

然后在JSON消息中变成 sale_test

具有一致的类型将解决您的问题:

curl -XPUT http://localhost:9200/my_index/_mapping/sale_test -d '
    { 
     "sale_test": { 
       "properties": { 
         "Client": {"type": "string", "index": "not_analyzed" }, 
         "OfferRGU": { "type": "long" }, 
         "SaleDate": { "type": "date", "format": "dateOptionalTime" },
         "State": { "type": "string" }
         } 
       } 
    }'

在这里,您既有 新索引 又有 新类型

curl -XGET http://localhost:9200/dgses/sale_test_river/_mapping

更正索引和类型给我:

curl -XGET http://localhost:9200/my_index/sale_test/_mapping?pretty
{
  "myindex" : {
    "mappings" : {
      "sale_test" : {
        "properties" : {
          "Client" : {
            "type" : "string",
            "index" : "not_analyzed"
          },
          "OfferRGU" : {
            "type" : "long"
          },
          "SaleDate" : {
            "type" : "date",
            "format" : "dateOptionalTime"
          },
          "State" : {
            "type" : "string"
          }
        }
      }
    }
  }
}


 类似资料:
  • 我在解决泛型问题时遇到了一些麻烦。我有一个“猫”对象列表和一个“狗”对象列表,我需要将它们传递到同一个方法中。该方法的返回类型是一个“字符串”和“动物列表”的映射,我试图找出一种方法来将带有动物列表的映射转换为带有猫或狗列表的映射。 这工作很好,如果我有一个单独的方法猫和狗,但我正在寻找一个更灵活的解决方案。 标题中出现错误的行: 注意:这是一个简化的例子,我必须能够使用地图中的列表作为“猫”或“

  • 类型映射 web3j中使用的原生Java到ABI类型映射如下: boolean -> bool BigInteger -> uint/int byte[] -> bytes String -> string and address types List<> -> dynamic/static array BigInteger类型必须用于数字类型,因为Ethereum以太坊中的数字类型是256位整数

  • 我试图通过使用多个测试数据在Cucumber DataTable中使用映射来自动化一个场景。在本测试中,我们将向测试步骤传递两次Username和Password。所以我们的测试应该输入用户名和密码一次,点击登录按钮,并重复相同的步骤再次。 我已经尝试使用for循环来使用Maps集合重复测试。1.我收到一个错误,表示类型不匹配:无法从元素类型2。当我将其转换为时,我得到另一个错误,说明方法send

  • 我是elasticseach的新手,正在尝试为自己的学习前景执行小任务。我指的是https://www.elastic.co/guide/en/elasticsearch/reference/current/dynamic-templates.html链接以创建动态模板;然而,当运行下面提到的查询时,我得到了“type”:“mapper_parsing_exception”,“reason”:“根

  • 我对JSP是新手。我正在学习useBean方法,在 http://www.studytonight.com/jsp/getproperty-tag.php 我得到了一个错误:在jsp文件中:/hello1的第5行发生了一个错误。jsp PersonBean无法解析为类型