gpt4 book ai didi

java - Elasticsearch Java : Root type mapping not empty after parsing

转载 作者:行者123 更新时间:2023-11-30 08:54:44 24 4
gpt4 key购买 nike

我正在尝试使用以下映射在 elasticsearch 中索引文档:

{"thread": {"properties":{"message":{"type": "nested", "properties": {"message_id": {"type":"string"}, "message_text":{"type":"string"}, "message_nick":{"type":"string"}}}}}}

然后使用它在 Java 中添加映射:

CreateIndexRequestBuilder indexRequest = client.admin().indices().prepareCreate(INDEX).addMapping("message", mapping);

但是我收到以下错误:

Caused by: org.elasticsearch.index.mapper.MapperParsingException: Root type mapping not empty after parsing! Remaining fields:   [mappings : {thread={properties={message={properties={message_text={type=string}, message_nick={type=string}, message_id={type=string}}, type=nested}}}}]

谁能告诉我这个错误是怎么来的?

最佳答案

我不知道你的确切映射的细节,但我有一个类似的问题,并且刚刚意识到当你通过 java API 添加映射时,你需要删除根下面的 json 对象。

例如,我尝试添加的映射是:

{"mappings":{"_default_":{"date_detection":false,"dynamic_templates":[{"dates":{"match":".*Date|date","match_pattern":"regex","mapping":{"type":"date"}}}]}}}

上面使用 REST API 添加的很好,但是使用 Java API 失败并出现与您提到的相同的错误。

我删除了“映射”json 对象并解决了这个问题。最终有效的映射是:

{"_default_":{"date_detection":false,"dynamic_templates":[{"dates":{"match":".*Date|date","match_pattern":"regex","mapping":{"type":"date"}}}]}}

关于java - Elasticsearch Java : Root type mapping not empty after parsing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29304374/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com