Class ElasticSearchQueryBuilderImpl
- java.lang.Object
-
- org.dashbuilder.dataprovider.backend.elasticsearch.rest.impl.ElasticSearchQueryBuilderImpl
-
- All Implemented Interfaces:
ElasticSearchQueryBuilder<ElasticSearchQueryBuilderImpl>
public class ElasticSearchQueryBuilderImpl extends Object implements ElasticSearchQueryBuilder<ElasticSearchQueryBuilderImpl>
Default query builder implementation.
It tries to use Filters as much as possible, as they're faster than queries.
If the resulting query only contains filters, wrap them into a MATCH_ALL filtered query, as aggregations do not work with post-filters (just filters, no queries).
-
-
Field Summary
Fields Modifier and Type Field Description protected ElasticSearchUtilsutilsprotected ElasticSearchValueTypeMappervalueTypeMapper
-
Constructor Summary
Constructors Constructor Description ElasticSearchQueryBuilderImpl(ElasticSearchValueTypeMapper valueTypeMapper, ElasticSearchUtils utils)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected List<Query>asList(Query... queries)Querybuild()Build the resuling query and/or filters.protected QuerybuildBooleanMatchQuery(org.dashbuilder.dataset.def.ElasticSearchDataSetDef def, String columnId, List params)protected QuerybuildColumnCoreFunctionFilter(org.dashbuilder.dataset.filter.CoreFunctionFilter filter, org.dashbuilder.dataset.DataSetMetadata metadata)protected QuerybuildLogicalExpressionFilter(org.dashbuilder.dataset.filter.LogicalExprFilter filter, org.dashbuilder.dataprovider.backend.elasticsearch.rest.impl.ElasticSearchQueryBuilderImpl.Operator operator)protected QuerybuildTermOrTermsFilter(org.dashbuilder.dataset.def.ElasticSearchDataSetDef def, String columnId, List params)ElasticSearchQueryBuilderImplfilter(List<org.dashbuilder.dataset.filter.DataSetFilter> filters)Add filters to build the query.protected StringgetBooleanQueryType(org.dashbuilder.dataprovider.backend.elasticsearch.rest.impl.ElasticSearchQueryBuilderImpl.Operator operator)protected Query.TypegetType(org.dashbuilder.dataprovider.backend.elasticsearch.rest.impl.ElasticSearchQueryBuilderImpl.Operator operator)ElasticSearchQueryBuilderImplgroupInterval(List<org.dashbuilder.dataset.group.DataSetGroup> groups)Group operations can contain interval selections to filter that must be added into the resulting query too.ElasticSearchQueryBuilderImplmetadata(org.dashbuilder.dataset.DataSetMetadata metadata)Set the dataset metadata.
-
-
-
Field Detail
-
valueTypeMapper
protected ElasticSearchValueTypeMapper valueTypeMapper
-
utils
protected ElasticSearchUtils utils
-
-
Constructor Detail
-
ElasticSearchQueryBuilderImpl
public ElasticSearchQueryBuilderImpl(ElasticSearchValueTypeMapper valueTypeMapper, ElasticSearchUtils utils)
-
-
Method Detail
-
metadata
public ElasticSearchQueryBuilderImpl metadata(org.dashbuilder.dataset.DataSetMetadata metadata)
Description copied from interface:ElasticSearchQueryBuilderSet the dataset metadata.- Specified by:
metadatain interfaceElasticSearchQueryBuilder<ElasticSearchQueryBuilderImpl>- Parameters:
metadata- The dataset metadata.
-
groupInterval
public ElasticSearchQueryBuilderImpl groupInterval(List<org.dashbuilder.dataset.group.DataSetGroup> groups)
Description copied from interface:ElasticSearchQueryBuilderGroup operations can contain interval selections to filter that must be added into the resulting query too.- Specified by:
groupIntervalin interfaceElasticSearchQueryBuilder<ElasticSearchQueryBuilderImpl>- Parameters:
groups- The group operations.
-
filter
public ElasticSearchQueryBuilderImpl filter(List<org.dashbuilder.dataset.filter.DataSetFilter> filters)
Description copied from interface:ElasticSearchQueryBuilderAdd filters to build the query.- Specified by:
filterin interfaceElasticSearchQueryBuilder<ElasticSearchQueryBuilderImpl>- Parameters:
filters- The filter operations.
-
build
public Query build()
Description copied from interface:ElasticSearchQueryBuilderBuild the resuling query and/or filters.- Specified by:
buildin interfaceElasticSearchQueryBuilder<ElasticSearchQueryBuilderImpl>
-
getBooleanQueryType
protected String getBooleanQueryType(org.dashbuilder.dataprovider.backend.elasticsearch.rest.impl.ElasticSearchQueryBuilderImpl.Operator operator)
-
getType
protected Query.Type getType(org.dashbuilder.dataprovider.backend.elasticsearch.rest.impl.ElasticSearchQueryBuilderImpl.Operator operator)
-
buildLogicalExpressionFilter
protected Query buildLogicalExpressionFilter(org.dashbuilder.dataset.filter.LogicalExprFilter filter, org.dashbuilder.dataprovider.backend.elasticsearch.rest.impl.ElasticSearchQueryBuilderImpl.Operator operator)
-
buildColumnCoreFunctionFilter
protected Query buildColumnCoreFunctionFilter(org.dashbuilder.dataset.filter.CoreFunctionFilter filter, org.dashbuilder.dataset.DataSetMetadata metadata)
-
buildBooleanMatchQuery
protected Query buildBooleanMatchQuery(org.dashbuilder.dataset.def.ElasticSearchDataSetDef def, String columnId, List params)
-
buildTermOrTermsFilter
protected Query buildTermOrTermsFilter(org.dashbuilder.dataset.def.ElasticSearchDataSetDef def, String columnId, List params)
-
-