не удалось найти метод readString (Path) при загрузке BulkApi - PullRequest
1 голос
/ 16 октября 2019

Я собираюсь загрузить большую часть данных, используя BulkApi, но при компиляции кода это показывает мне ошибку.

 private static final Logger log = LoggerFactory.getLogger(BulkApiService.class);

    @Autowired
    public ElasticSearchConfig elasticSearchConfig;
    private static String FOLDER_PATH = "src/main/resources/allFiles";

    public void loadAllDataUsingBulkApi() {
        Client client = elasticSearchConfig.client();
        AtomicReference<BulkRequestBuilder> request = new AtomicReference<>(client.prepareBulk());
        AtomicInteger counter = new AtomicInteger();
        try (Stream<Path> filePathStream = Files.walk(Paths.get(FOLDER_PATH))) {
            filePathStream.forEach(filePath -> {
                if (Files.isRegularFile(filePath)) {
                    counter.getAndIncrement();
                    try {
                        String content = Files.readString(filePath);
                        JSONObject contentJson = new JSONObject(content);
                        HashMap contentMap = new Gson().fromJson(contentJson.toString(), HashMap.class);
                        request.get().add(client.prepareIndex("indexName", "default").setSource(contentMap));

                    } catch (IOException ignore) {
                        log.error(ignore.toString());
                    }

                }
            });
            BulkResponse bulkResponse = request.get().execute().actionGet();

        } catch (Exception e) {
            log.error(e.toString());
        }

    }
}

Ожидаемый результат: он должен загрузить все данные по указанному пути в ES. Фактический вывод:

Ошибка «String content = Files.readString (filePath);»что не смог найти символ. символ: метод readString (Path) расположение: класс Files

...