public final <T> AssertFacetContext facets(String facetingRequestName) { HSQuery hsQuery = getHSQuery(); List<Facet> facets = hsQuery.getFacetManager().getFacets( facetingRequestName ); return new AssertFacetContext( this, facetingRequestName, facets ); }
@Test public void clear_faceting() throws Exception { QueryBuilder qb = helper.queryBuilder( IndexedEntity.class ); HSQuery hsQuery = queryAll(); helper.assertThat( hsQuery ).matchesExactlyIds( 0, 1, 2 ); String facetingRequestName = "facet1"; FacetingRequest facetingRequest1 = qb.facet() .name( facetingRequestName ) .onField( "facetField" ) .discrete() .createFacetingRequest(); hsQuery.getFacetManager().enableFaceting( facetingRequest1 ); helper.assertThat( hsQuery ).facets( facetingRequestName ) .includes( "zero", 1 ) .includes( "one", 1 ) .includes( "two", 1 ) .only(); hsQuery.getFacetManager().disableFaceting( facetingRequestName ); helper.assertThat( hsQuery ).facets( facetingRequestName ).isEmpty(); }
private void doFloatRangeFacetingQuery() { QueryBuilder qb = helper.queryBuilder( FacetedEntity.class ); FacetingRequest request = qb.facet() .name( "myRequest" ) .onField( "floatField" ) .range() .from( 0.0f ).to( 1000.0f ).excludeLimit() .from( 1000.0f ).to( 1500.0f ).excludeLimit() .includeZeroCounts( true ) .createFacetingRequest(); // Mainly, we're testing that executing the query with faceting enabled won't explode HSQuery hsQuery = helper.hsQuery( FacetedEntity.class ); hsQuery.getFacetManager().enableFaceting( request ); helper.assertThat( hsQuery ) .facets( "myRequest" ) .includes( "[0.0, 1000.0)", 0 ) .includes( "[1000.0, 1500.0)", 0 ) .only(); }
private void doIntegerRangeFacetingQuery() { QueryBuilder qb = helper.queryBuilder( FacetedEntity.class ); FacetingRequest request = qb.facet() .name( "myRequest" ) .onField( "integerField" ) .range() .from( 0 ).to( 1000 ) .from( 1001 ).to( 1500 ) .includeZeroCounts( true ) .createFacetingRequest(); // Mainly, we're testing that executing the query with faceting enabled won't explode HSQuery hsQuery = helper.hsQuery( FacetedEntity.class ); hsQuery.getFacetManager().enableFaceting( request ); helper.assertThat( hsQuery ) .facets( "myRequest" ) .includes( "[0, 1000]", 0 ) .includes( "[1001, 1500]", 0 ) .only(); }
private void doDiscreteFacetingQuery() { QueryBuilder qb = helper.queryBuilder( FacetedEntity.class ); FacetingRequest request = qb.facet() .name( "myRequest" ) .onField( "stringField" ) .discrete() .includeZeroCounts( false ) .createFacetingRequest(); // Mainly, we're testing that executing the query with faceting enabled won't explode HSQuery hsQuery = helper.hsQuery( FacetedEntity.class ); hsQuery.getFacetManager().enableFaceting( request ); helper.assertThat( hsQuery ) .facets( "myRequest" ) .isEmpty(); }