我正在尝试使用Rest高级客户端从Java创建映射,但是它抛出了映射器解析异常,但是下面的邮递员使用的是相同的映射。
我正在将映射json内容存储在文件中,并按照SO post的建议在java程序中读取
How to write json mapping in java using elastic search RestHighLevelClient?
{
"mappings": {
"properties": {
"events": {
"type": "nested",
"properties": {
"recommendationData": {
"type": "nested",
"properties": {
"recommendations": {
"type": "nested",
"properties": {
"recommendationType": {
"type": "keyword"
}
}
}
}
}
}
}
}
}
}
and from java i am using below code to create index and mapping
private void checkAndCreateDocumentMapping() throws IOException {
CreateIndexRequest createIndexRequest = new CreateIndexRequest(this.getIndexName());
String indexString = "{\n" +
" \"mappings\": {\n" +
" \"recommendations\": {\n" +
" \"properties\": {\n" +
" \"events\": {\n" +
" \"type\": \"nested\",\n" +
" \"properties\": {\n" +
" \"recommendationData\": {\n" +
" \"type\": \"nested\",\n" +
" \"properties\": {\n" +
" \"recommendations\": {\n" +
" \"type\": \"nested\",\n" +
" \"properties\": {\n" +
" \"recommendationType\": {\n" +
" \"type\": \"keyword\"\n" +
" }\n" +
" }\n" +
" }\n" +
" }\n" +
" }\n" +
" }\n" +
" }\n" +
" }\n" +
" }\n" +
" }\n" +
"}";
createIndexRequest.source(indexString, XContentType.JSON);
client.indices().create(createIndexRequest, RequestOptions.DEFAULT);
}
出现以下错误:
ElasticsearchStatusException[Elasticsearch exception [type=mapper_parsing_exception, reason=Failed to parse mapping [_doc]: Root mapping definition has unsupported parameters: [recommendations : {recommendations={properties={events={type=nested, properties={recommendationData={type=nested, properties={recommendations={type=nested, properties={recommendationType={type=keyword}}}}}}}}}}]]]; nested: ElasticsearchException[Elasticsearch exception [type=mapper_parsing_exception, reason=Root mapping definition has unsupported parameters: [recommendations : {recommendations={properties={events={type=nested, properties={recommendationData={type=nested, properties={recommendations={type=nested, properties={recommendationType={type=keyword}}}}}}}}}}]]];