gpt4 book ai didi

java - Elasticsearch Java API 创建带有映射的索引失败

转载 作者:行者123 更新时间:2023-12-02 04:18:11 24 4
gpt4 key购买 nike

我正在尝试利用 java api 在 Elasticsearch 7 中创建新索引。我能够很好地创建一个新索引,期望当我尝试使用映射创建它,或者尝试根据文档添加映射时:

add mapping

create index with mapping

当我简单地创建索引时,这工作得很好

public boolean createIndex(RestHighLevelClient client, String indexName) throws IOException {
CreateIndexRequest request = new CreateIndexRequest(indexName);

//no options just straight forward
CreateIndexResponse response = client.indices().create(request, RequestOptions.DEFAULT);
return response.isAcknowledged();
}

但是,添加 request.mapping (此示例来自网页)会破坏它吗?

request.mapping(
"{\n" +
" \"properties\": {\n" +
" \"firstName\": {\n" +
" \"type\": \"text\"\n" +
" }\n" +
" }\n" +
"}",
XContentType.JSON);

即使我尝试使用 putMapping 应用映射,但事实上它也会破坏它

public boolean createMappingOnIndex(RestHighLevelClient client, String indexName, String mapping) throws IOException {
PutMappingRequest request = new PutMappingRequest(indexName);

//instead of using my own, using the example from docs to simplify, still not working
request.source(
"{\n" +
" \"properties\": {\n" +
" \"firstName\": {\n" +
" \"type\": \"text\"\n" +
" }\n" +
" }\n" +
"}",
XContentType.JSON);

AcknowledgedResponse response = client.indices(). putMapping(request, RequestOptions.DEFAULT);
return response.isAcknowledged();
}

我遇到的错误

java.lang.IllegalStateException: Failed to close the XContentBuilder
at org.elasticsearch.common.xcontent.XContentBuilder.close
caused by: java.io.IOException: Unclosed Object or array found
at org.elasticsearch.common.xcontent.json.JsonXContentGenerator.close(JsonXContentGenerator.java ###)

我尝试使用 Hashmap 实现而不是字符串版本,尽管一旦它进入 es 字节,它似乎是同一件事。这很奇怪,因为无论我使用像 Gson 这样的东西,还是只写一个转义的字符串示例,请求对象都会在内部进行所需的转换(我认为),然后弹性对其创建的格式有问题?

我应该提到,这一切都在 Spring Maven 上下文中,并且索引/文档的创建/插入是通过单例 bean 完成的。虽然我找不到任何迹象表明这是罪魁祸首?当我只创建一个没有附加映射的索引时,它工作得很好。

一如既往,我们非常感谢任何帮助。

最佳答案

很抱歉回答我自己的问题,但万一其他人遇到这个问题:以上所有内容都很好,问题在于我的 RestHighLevelClient 从 Spring bean 返回的方式。

关于java - Elasticsearch Java API 创建带有映射的索引失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56652536/

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