Spring Data Redis поиск в сборе - PullRequest
0 голосов
/ 18 февраля 2020

Давайте представим, что у меня есть сущность, подобная

@RedisHash(value = "Question",timeToLive = -1)
@Data
public class Question {

private String id;
@Indexed private String question;
@Indexed private String indexName;
@Indexed  List<Long> folderIds;
List<Answer> answers;

. Сценарий ios для получения этой сущности из redis будет следующим: 1. Поиск по вопросу, indexName и точное совпадение списка folderIds. 2. Выполните поиск по indexName и укажите c folderId в этом списке folderIds.

Как я понимаю - Spring Data Redis не поддерживает IN, CONTAINS и все другие элементы для поиска в коллекции. Поэтому моей первой идеей было сохранить folderIds в виде строки (в предварительно отсортированном порядке и объединить с разделителем запятых). Это поможет в первом сценарии. Но для второго сценария это не будет работать, потому что операция LIKE также не поддерживается в репозитории. И единственный способ, который я вижу здесь - захватить все по indexName, а затем отфильтровать эту большую коллекцию вручную, но, похоже, это не очень благоприятно для производительности.

Может быть, я что-то упустил, и есть какой-то хороший способ справиться с таким дело. Спасибо!

...