Mapper Parse исключение остальных клиентов высокого уровня версии 7.6.1 - PullRequest
0 голосов
/ 14 апреля 2020

Я пытаюсь создать сопоставление из java с помощью высокоуровневого клиента rest, но оно вызывает исключение при разборе сопоставления, но то же сопоставление работает с почтальоном ниже - сопоставление.

Я храню сопоставление json содержимого в файле и читаю в программе java, как предложено в публикации SO

Как написать json Отображение в java используя elasti c 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}}}}}}}}}}]]];
...