• Почему ошибка при createIndex elasticsearch используя ElasticsearchOperations?

    poznavaka
    @poznavaka Автор вопроса
    axce1, с этим я испытываю трудности. :) Только божими наставлениями и силой воли моей, ступаю я по просторам неведанных классов либы сеей. Ну в смысле не приходилось еще работать с suggest ES в spring-data.
  • Почему ошибка при createIndex elasticsearch используя ElasticsearchOperations?

    poznavaka
    @poznavaka Автор вопроса
    axce1, да, сталкивался, откатился на 6.8.6 клиент, хотя elasticsearch юзаю 7.6.2 Проблема в том что TransportClient выкуривают, с ним есть проблемы и полностью навязывают HighLeverRest. В клиенте 7.6.2 TransportClient уже Deprecated, а с 8й он будет полностью удален. В итоге не хватает некоторой реализации. Короче spring-data-elasticsearch 3.2.6 совместим с клиентом 6.8.6, а с 7.6.2 нет. Скоро выйдет spring-data-elasticsearch 4.0, там добавится несколько интересных плюшек, в том числе будет и исправлен баг о котором вы написали.
  • Почему ошибка при createIndex elasticsearch используя ElasticsearchOperations?

    poznavaka
    @poznavaka Автор вопроса
    axce1, потому что он у меня динамически меняется. Я не проверял, как подгружается json файл в объект используя @Settings - во время создания индекса или вовремя создания бина компоненты. Как думаете? Но мне это не подходит, потому что файл у меня при запуске всегда должен быть один, а меняться он может в зависимости от текущих данных.
  • Почему ошибка при createIndex elasticsearch используя ElasticsearchOperations?

    poznavaka
    @poznavaka Автор вопроса
    Bavashi, не, stream тут не причем. Короче проблема решилась тем, что я сравнял версии java-client и Elasticsearch
  • Почему ошибка при createIndex elasticsearch используя ElasticsearchOperations?

    poznavaka
    @poznavaka Автор вопроса
    Bavashi, clazz это переменная типа Class<?>.
    Спасибо за ответ, я просто не подключил все библиотеки.
    Простите за мою вялость. Но у меня к вам еще один вопрос. Кажется, я не решил проблему. Я использую repository для работы с данными в spring. Как вы знаете, я отказался от TransportClient в пользу RestHighLevelClient. Мой repository унаследован от интерфейса ElasticsearchRepository. Я использую стандартный метод saveAll.

    У меня есть list из MyPostgresModel и мне нужно сохранить его в Elastic. Я хочу сделать это быстро, поэтому я использую @Transactional и использую метод saveAll с Iterable. MyPostgresModel имеет метод toDocument для возврата объекта MyElasticModel.

    И вот пошли странности:
    Это работает: myElasticRepository.save(users.get(0).toDocument());
    И вот это не работает: myElasticRepository.saveAll(() -> users.stream().map(MyPostgresModel::toDocument).iterator());

    Понятия не имею. Почему нет? Возвращается ошибка "type is missing;7930: type is missing;7931:...". Debuger сообщает мне, что elastic возвращает "400 Bad Request", типа не проходит валидация данных.
    До того как я использовал TransportClient все было ок, а ведь TransportClient и RestHighLevelClient используют общий интерфейс elasticsearchOperations...
  • Как в service отловить событие на подтверждение разрешения READ_CONTACTS?

    poznavaka
    @poznavaka Автор вопроса
    Денис Загаевский, ну интересно мне. Есть ли возможность или гугл это ограничил... Сейчас пишу тестовое приложение, где пробую реализовать то, что никогда не делал, но мог бы. Одна из них это синхронизация контактов с компьютером. Через активное приложение это делать весьма странно. Поэтому нужна фоновая проверка. Я то могу забиндить с активити это. Но мне интересно есть ли легкие пути. Тем более если я отказал в разрешении, а затем позже решил дать добро через настройки.