@Override public FacetManagerImpl getFacetManager() { if ( facetManager == null ) { facetManager = new FacetManagerImpl( this ); } return facetManager; }
@Override public void clearSelectedFacets() { facetList.clear(); queryHasChanged(); }
@Override protected void extractFacetResults() { SearchResult searchResult = getSearchResult(); JsonElement aggregationsElement = searchResult.getJsonObject().get( "aggregations" ); if ( aggregationsElement == null ) { return; } JsonObject aggregations = aggregationsElement.getAsJsonObject(); Map<String, List<Facet>> results = new HashMap<>(); for ( FacetingRequest facetRequest : getFacetManager().getFacetRequests().values() ) { List<Facet> facets; if ( facetRequest instanceof DiscreteFacetRequest ) { facets = updateStringFacets( aggregations, (DiscreteFacetRequest) facetRequest ); // Discrete facets are sorted by Elasticsearch } else { facets = updateRangeFacets( aggregations, (RangeFacetRequest<?>) facetRequest ); if ( !FacetSortOrder.RANGE_DEFINITION_ORDER.equals( facetRequest.getSort() ) ) { Collections.sort( facets, FacetComparators.get( facetRequest.getSort() ) ); } } results.put( facetRequest.getFacetingName(), facets ); } getFacetManager().setFacetResults( results ); }
Collection<FacetingRequest> facetingRequests = getFacetManager().getFacetRequests().values(); Map<FacetingRequest, FacetMetadata> facetingRequestsAndMetadata = buildFacetingRequestsAndMetadata( facetingRequests, targetedEntityBindingsByName.values() );
for ( Query query : getFacetManager().getFacetFilters().getFilterQueries() ) { filters.add( ToElasticsearch.fromLuceneQuery( query ) );
@Override protected void extractFacetResults() { SearchResult searchResult = getSearchResult(); JsonObject aggregations = searchResult.getAggregations(); if ( aggregations == null ) { return; } Map<String, List<Facet>> results = new HashMap<>(); for ( Map.Entry<FacetingRequest, FacetMetadata> entry : searcher.getFacetingRequestsAndMetadata().entrySet() ) { FacetingRequest facetRequest = entry.getKey(); FacetMetadata facetMetadata = entry.getValue(); List<Facet> facets; if ( facetRequest instanceof DiscreteFacetRequest ) { facets = extractDiscreteFacets( aggregations, (DiscreteFacetRequest) facetRequest, facetMetadata ); // Discrete facets are sorted by Elasticsearch } else { facets = extractRangeFacets( aggregations, (RangeFacetRequest<?>) facetRequest, facetMetadata ); if ( !FacetSortOrder.RANGE_DEFINITION_ORDER.equals( facetRequest.getSort() ) ) { Collections.sort( facets, FacetComparators.get( facetRequest.getSort() ) ); } } results.put( facetRequest.getFacetingName(), facets ); } getFacetManager().setFacetResults( results ); }
public QueryFilters getFacetFilters() { if ( facetFilterset == null ) { int size = facetSelection == null ? 0 : facetSelection.values().size(); if ( size != 0 ) { List<Query> filterQueries = new ArrayList<>( size ); for ( FacetSelectionImpl selection : facetSelection.values() ) { if ( !selection.getFacetList().isEmpty() ) { Query selectionGroupQuery = createSelectionGroupQuery( selection ); filterQueries.add( selectionGroupQuery ); } } if ( filterQueries.size() != 0 ) { this.facetFilterset = new QueryFilters( filterQueries ); } else { facetFilterset = QueryFilters.EMPTY_FILTERSET; } } else { facetFilterset = QueryFilters.EMPTY_FILTERSET; } } return facetFilterset; }
private JsonObject getEffectiveFilter(JsonArray typeFilters) { JsonArray filters = new JsonArray(); JsonObject tenantFilter = getTenantIdFilter(); if ( tenantFilter != null ) { filters.add( tenantFilter ); } // wrap type filters into should if there is more than one filters.add( ToElasticsearch.condition( "should", typeFilters ) ); // facet filters Filter facetFilter = getFacetManager().getFacetFilter(); if ( facetFilter != null ) { filters.add( ToElasticsearch.fromLuceneFilter( getFacetManager().getFacetFilter() ) ); } // wrap filters into must if there is more than one return ToElasticsearch.condition( "must", filters ); }
Collection<FacetingRequest> facetingRequests = getFacetManager().getFacetRequests().values(); Map<FacetingRequest, FacetMetadata> facetingRequestsAndMetadata = buildFacetingRequestsAndMetadata( facetingRequests, targetedEntityBindingsByName.values() ); .searchExecuted( searcher.describeQuery(), System.nanoTime() - startTime ); getFacetManager().setFacetResults( queryHits.getFacets() ); return queryHits;
Collection<FacetingRequest> facetingRequests = getFacetManager().getFacetRequests().values(); Map<FacetingRequest, FacetMetadata> facetingRequestsAndMetadata = buildFacetingRequestsAndMetadata( facetingRequests, targetedEntityBindingsByName.values() );
for ( Query query : getFacetManager().getFacetFilters().getFilterQueries() ) { filters.add( ToElasticsearch.fromLuceneQuery( query ) );
@Override protected void extractFacetResults() { SearchResult searchResult = getSearchResult(); JsonObject aggregations = searchResult.getAggregations(); if ( aggregations == null ) { return; } Map<String, List<Facet>> results = new HashMap<>(); for ( Map.Entry<FacetingRequest, FacetMetadata> entry : searcher.getFacetingRequestsAndMetadata().entrySet() ) { FacetingRequest facetRequest = entry.getKey(); FacetMetadata facetMetadata = entry.getValue(); List<Facet> facets; if ( facetRequest instanceof DiscreteFacetRequest ) { facets = extractDiscreteFacets( aggregations, (DiscreteFacetRequest) facetRequest, facetMetadata ); // Discrete facets are sorted by Elasticsearch } else { facets = extractRangeFacets( aggregations, (RangeFacetRequest<?>) facetRequest, facetMetadata ); if ( !FacetSortOrder.RANGE_DEFINITION_ORDER.equals( facetRequest.getSort() ) ) { Collections.sort( facets, FacetComparators.get( facetRequest.getSort() ) ); } } results.put( facetRequest.getFacetingName(), facets ); } getFacetManager().setFacetResults( results ); }
public QueryFilters getFacetFilters() { if ( facetFilterset == null ) { int size = facetSelection == null ? 0 : facetSelection.values().size(); if ( size != 0 ) { List<Query> filterQueries = new ArrayList<>( size ); for ( FacetSelectionImpl selection : facetSelection.values() ) { if ( !selection.getFacetList().isEmpty() ) { Query selectionGroupQuery = createSelectionGroupQuery( selection ); filterQueries.add( selectionGroupQuery ); } } if ( filterQueries.size() != 0 ) { this.facetFilterset = new QueryFilters( filterQueries ); } else { facetFilterset = QueryFilters.EMPTY_FILTERSET; } } else { facetFilterset = QueryFilters.EMPTY_FILTERSET; } } return facetFilterset; }
Collection<FacetingRequest> facetingRequests = getFacetManager().getFacetRequests().values(); Map<FacetingRequest, FacetMetadata> facetingRequestsAndMetadata = buildFacetingRequestsAndMetadata( facetingRequests, targetedEntityBindingsByName.values() ); .searchExecuted( searcher.describeQuery(), System.nanoTime() - startTime ); getFacetManager().setFacetResults( queryHits.getFacets() ); return queryHits;
@Override public FacetManagerImpl getFacetManager() { if ( facetManager == null ) { facetManager = new FacetManagerImpl( this ); } return facetManager; }
.add( "filtered", JsonBuilder.object( jsonQuery ).add( "filter", effectiveFilter ) ) ); if ( !getFacetManager().getFacetRequests().isEmpty() ) { JsonBuilder.Object facets = JsonBuilder.object(); for ( Entry<String, FacetingRequest> facetRequestEntry : getFacetManager().getFacetRequests().entrySet() ) { ToElasticsearch.addFacetingRequest( facets, facetRequestEntry.getValue() );
@Override public void clearSelectedFacets() { facetList.clear(); queryHasChanged(); }
final QueryFilters facetingFilters = getFacetManager().getFacetFilters();
@Override public FacetManagerImpl getFacetManager() { if ( facetManager == null ) { facetManager = new FacetManagerImpl( this ); } return facetManager; }
@Override public void disableFaceting(String facetingName) { if ( facetRequests != null ) { facetRequests.remove( facetingName ); } if ( facetResults != null ) { facetResults.remove( facetingName ); } queryHasChanged(); }