Я использую Hibernate Search 6, настроенный для бэкэнда эластичного поиска.
@Indexed
public class Book extends PanacheEntity{
@FullTextField
public String title;
@GenericField
public Double price;
}
Я могу фильтровать по полю цен для книг в ценовом диапазоне следующим образом:
Search.session(entityManager)
.search(Book.class)
.predicate(f -> f.bool(b -> {
b.must(f.range().field("price").lessThan(50));
}));
Я хотел бы иметь возможность сортировать результаты поиска по цене. Для этого я изменил определение поля на
@GenericField(sortable = Sortable.YES)
private Double price;
Я делаю сортировку следующим образом:
.sort(f -> f.composite(b -> {
b.add(f.field("price");
} ) )
Я получаю следующее сообщение об ошибке, которое, похоже, было выброшено из Elasti c
Can\u0027t load fielddata on [offer.price] because fielddata is unsupported on fields of type [double]. Use doc values instead.
Я видел Можете ли вы сортировать и искать в одном поле с Hibernate / Lucene? , но я не вижу эквивалентных аннотаций в поиске Hibernate 6