#java #spring-boot #elasticsearch #spring-data-elasticsearch
#java #пружинный ботинок #эластичный поиск #spring-данные-elasticsearch
Вопрос:
Трудно найти правильные средства построения запросов для создания динамического поискового запроса. Одна вещь, с которой я действительно борюсь, — это найти правильный QueryBuilder для предложения IN.
В приведенном ниже разделе «careIds» я хочу, чтобы NativeSearchQueryBuilder нашел все записи, у которых есть один или несколько careId в careIds.
Желаемый псевдокод:
if (CollectionUtils.isNotEmpty(careIds)) {
searchQueryBuilder.withFilter(inQuery("CareIds", careIds);
}
Эквивалентным именем метода метода было бы
findAllByCareIdsIn(final List<Long> careIds);
Комментарии:
1.
findAllByCareIdsIn(final List<Long> careIds);
не работает?2. Вероятно, так и будет, но я работаю над динамическим запросом в зависимости от различного количества фильтров, заданных пользователем, и мне нужно будет использовать конструктор запросов. Прямо сейчас я использую NativeSearchQueryBuilder и мне понадобится что-то эквивалентное findAllByCareIdsIn() .
Ответ №1:
termsQuery(Field, List<Object>)
это было то, что я искал.