Я использую поиск в спящем режиме (последняя версия) с локальным сервером Lucene. У меня есть две следующие сущности;
@Entity
@Indexed
public class A {
@Id
private Long id;
@FullTextField
private String text;
@KeywordField
private String keyword;
}
@Entity
public class B {
private BigDecimal number;
@OneToOne
@JoinColumn(name = "a_id")
private A a;
}
У меня есть массовый индексатор, который обрабатывает индексирование сущностей A при запуске приложения. При поиске я хочу, чтобы результаты поиска были упорядочены по полю number объекта B.
Моя функция поиска - это простой логический предикат, который выглядит следующим образом
.where(f -> f.bool()
.should(f.match().field("text").matching(query))
.should(f.match().field("keyword").matching(query.toUpperCase(Locale.ENGLISH)))
)
.fetch(offset, limit)
Что мне делать, чтобы упорядочить / ускорить результаты поиска в зависимости от другого поля другого объекта, которое имеет однозначное отношение?