我正在尝试在我的应用程序中采用 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 结果的结果,但在调用 fullTextQuery.list() 时仍然尝试它会导致 0 结果。
我错过了什么?
谢谢 !