Package de.cxp.ocs.elasticsearch.facets
Class NestedFacetCreator
- java.lang.Object
-
- de.cxp.ocs.elasticsearch.facets.NestedFacetCreator
-
- All Implemented Interfaces:
FacetCreator
- Direct Known Subclasses:
CategoryFacetCreator,IntervalFacetCreator,RangeFacetCreator,TermFacetCreator
public abstract class NestedFacetCreator extends Object implements FacetCreator
-
-
Field Summary
Fields Modifier and Type Field Description protected de.cxp.ocs.elasticsearch.facets.NestedFacetCountCorrectornestedFacetCorrector
-
Constructor Summary
Constructors Constructor Description NestedFacetCreator(Map<String,FacetConfiguration.FacetConfig> facetConfigs)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description org.elasticsearch.search.aggregations.AggregationBuilderbuildAggregation()Build aggregation that is necessary to create the according facets.org.elasticsearch.search.aggregations.AggregationBuilderbuildExcludeFilteredAggregation(Set<String> excludeNames)Build aggregation that is necessary to create the facets, but not the ones in the exlude list.org.elasticsearch.search.aggregations.AggregationBuilderbuildIncludeFilteredAggregation(Set<String> includeNames)Build aggregation that is necessary to create the facets specified by the includes list.protected abstract booleancorrectedNestedDocumentCount()protected abstract Optional<Facet>createFacet(org.elasticsearch.search.aggregations.bucket.terms.Terms.Bucket facetNameBucket, FacetConfiguration.FacetConfig facetConfig, InternalResultFilter facetFilter, SearchQueryBuilder linkBuilder)Collection<Facet>createFacets(org.elasticsearch.search.aggregations.Aggregations aggResult, FilterContext filterContext, SearchQueryBuilder linkBuilder)create facets from aggregation result.protected List<Facet>extractFacets(org.elasticsearch.search.aggregations.bucket.terms.Terms facetNames, FilterContext filterContext, SearchQueryBuilder linkBuilder)protected abstract StringgetNestedPath()protected abstract org.elasticsearch.search.aggregations.AggregationBuildergetNestedValueAggregation(String nestedPathPrefix)protected abstract booleanisMatchingFilterType(InternalResultFilter internalResultFilter)protected abstract booleanonlyFetchAggregationsForConfiguredFacets()-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface de.cxp.ocs.elasticsearch.facets.FacetCreator
mergeFacets
-
-
-
-
Constructor Detail
-
NestedFacetCreator
public NestedFacetCreator(Map<String,FacetConfiguration.FacetConfig> facetConfigs)
-
-
Method Detail
-
getNestedPath
protected abstract String getNestedPath()
-
getNestedValueAggregation
protected abstract org.elasticsearch.search.aggregations.AggregationBuilder getNestedValueAggregation(String nestedPathPrefix)
-
onlyFetchAggregationsForConfiguredFacets
protected abstract boolean onlyFetchAggregationsForConfiguredFacets()
-
correctedNestedDocumentCount
protected abstract boolean correctedNestedDocumentCount()
-
isMatchingFilterType
protected abstract boolean isMatchingFilterType(InternalResultFilter internalResultFilter)
-
createFacet
protected abstract Optional<Facet> createFacet(org.elasticsearch.search.aggregations.bucket.terms.Terms.Bucket facetNameBucket, FacetConfiguration.FacetConfig facetConfig, InternalResultFilter facetFilter, SearchQueryBuilder linkBuilder)
-
buildAggregation
public org.elasticsearch.search.aggregations.AggregationBuilder buildAggregation()
Description copied from interface:FacetCreatorBuild aggregation that is necessary to create the according facets.- Specified by:
buildAggregationin interfaceFacetCreator- Returns:
-
buildIncludeFilteredAggregation
public org.elasticsearch.search.aggregations.AggregationBuilder buildIncludeFilteredAggregation(Set<String> includeNames)
Description copied from interface:FacetCreatorBuild aggregation that is necessary to create the facets specified by the includes list.- Specified by:
buildIncludeFilteredAggregationin interfaceFacetCreator- Returns:
-
buildExcludeFilteredAggregation
public org.elasticsearch.search.aggregations.AggregationBuilder buildExcludeFilteredAggregation(Set<String> excludeNames)
Description copied from interface:FacetCreatorBuild aggregation that is necessary to create the facets, but not the ones in the exlude list.- Specified by:
buildExcludeFilteredAggregationin interfaceFacetCreator- Returns:
-
createFacets
public Collection<Facet> createFacets(org.elasticsearch.search.aggregations.Aggregations aggResult, FilterContext filterContext, SearchQueryBuilder linkBuilder)
Description copied from interface:FacetCreatorcreate facets from aggregation result.- Specified by:
createFacetsin interfaceFacetCreator- Returns:
-
extractFacets
protected List<Facet> extractFacets(org.elasticsearch.search.aggregations.bucket.terms.Terms facetNames, FilterContext filterContext, SearchQueryBuilder linkBuilder)
-
-