Я пытаюсь внедрить Hibernate Search в свое приложение, но я застрял в ограничении результатов поиска по аспекту диапазона, чтобы ограничить результаты на основе ценовых диапазонов.
Мой код (фрагменты):
Product.java содержит:
@Field(analyze = Analyze.NO, store = Store.YES, bridge = @FieldBridge(impl = DoubleBridge.class))
@NumericField()
private double price = 0.0;
Мой обработчик поиска, построение ценового аспекта:
FacetingRequest priceFacetingRequest = builder.facet()
.name( "price" )
.onField("price")
.range()
.below(10.0)
.from(11.0).to(24.0)
.from(25.0).to(49.0)
.from(50.0).to(99.0)
.from(100.0).to(199.0)
.from(200.0).to(499.0)
.from(500.0).to(999.0)
.from( 1000.0 ).to( 1499.0 )
.above( 1500.0 )
.excludeLimit()
.createFacetingRequest();
facetManager.enableFaceting(priceFacetingRequest);
И, наконец, перед перечислением результатов, ограничение результатов по одному из аспектов:
facetManager.getFacetGroup( "price" ).selectFacets( rangeFacet );
Я пробовал все возможные rangeFacets, но ни один из них не дал никаких результатов. Помимо аспекта range(), у меня есть разные текстовые аспекты, которые работают одинаково, но обычно фильтруют результаты. Кроме того, facetManager сообщает о результатах для результатов facetRange, но попытка по-прежнему приводит к 0 результатам при вызове fullTextQuery.list().
Что мне не хватает?
Спасибо !