Я получаю сообщение об ошибке, вставленное в этот вопрос, и это правда: индекса Sugestao нет. Правильное имя — sugestao (обратите внимание на S вместо s).
Насколько я знаю, я не могу создать индекс с прописными буквами. Все идет нормально. Проблема в том, как «заставить» spring-data-elasticsearch искать sugestao вместо Sugestao, поскольку моя модель представляет собой класс java в верхнем регистре? Я предполагаю, что он автоматически подбирает верхний регистр.
В Spring-Data-Elasticsearch-3.2.6 (Elastic версии 6.x) я вижу, что у find есть четкий способ установить как
reactiveElasticsearchOperations.find(
query.build(),
Sugestao.class, // this is the model class
"this_is_my_index_name" //here I can write the name of the index with lower case
)
Как я могу использовать аналогичный подход в Spring-data-Elasticsearch.4 (Elastic версии 7.x). Я пытаюсь использовать поиск, поскольку поиск устарел.
Flux<SearchHit<Sugestao>> fluxSearchHits =
reactiveElasticsearchOperations.search(query.build(), Sugestao.class, "sugestao");
И я получаю
Метод search(Query, Class, Class) в типе ReactiveSearchOperations неприменим для аргументов (NativeSearchQuery, Class, String)
Некоторые связанные подвопросы:
Кажется, в устаревшей версии Find я мог передать строку, а теперь при поиске ожидается класс. Но какой класс должен установить имя индекса?
возможно, я могу установить в другой конфигурации spring-data-elasticsearch имя индекса или настроить его на использование нижнего регистра, и тогда я смогу выполнять поиск без добавления имени индекса.
Flux> fluxSearchHits = reactiveElasticsearchOperations.search(query.build(), Sugestao.class);