Class QueryServiceImpl
- java.lang.Object
-
- org.apache.unomi.services.impl.queries.QueryServiceImpl
-
- All Implemented Interfaces:
QueryService
public class QueryServiceImpl extends Object implements QueryService
-
-
Constructor Summary
Constructors Constructor Description QueryServiceImpl()
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description Map<String,Long>
getAggregate(String itemType, String property)
Retrieves the number of items with the specified type as defined by the Item subclass public fieldITEM_TYPE
and aggregated by possible values of the specified property.Map<String,Long>
getAggregate(String itemType, String property, AggregateQuery query)
Deprecated.As of version 1.3.0-incubating, usegetAggregateWithOptimizedQuery(String, String, AggregateQuery)
insteadMap<String,Long>
getAggregateWithOptimizedQuery(String itemType, String property, AggregateQuery query)
Retrieves the number of items with the specified type as defined by the Item subclass public fieldITEM_TYPE
and aggregated by possible values of the specified property or, if the specified query is notnull
, perform that aggregate query.Map<String,Double>
getMetric(String type, String property, String slashConcatenatedMetrics, Condition condition)
Retrieves the specified metrics for the specified field of items of the specified type as defined by the Item subclass public fieldITEM_TYPE
and matching the specifiedCondition
.long
getQueryCount(String itemType, Condition condition)
Retrieves the number of items of the specified type as defined by the Item subclass public fieldITEM_TYPE
and matching the specifiedCondition
.void
postConstruct()
void
preDestroy()
void
setDefinitionsService(DefinitionsService definitionsService)
void
setPersistenceService(PersistenceService persistenceService)
-
-
-
Method Detail
-
setPersistenceService
public void setPersistenceService(PersistenceService persistenceService)
-
setDefinitionsService
public void setDefinitionsService(DefinitionsService definitionsService)
-
postConstruct
public void postConstruct()
-
preDestroy
public void preDestroy()
-
getAggregate
public Map<String,Long> getAggregate(String itemType, String property)
Description copied from interface:QueryService
Retrieves the number of items with the specified type as defined by the Item subclass public fieldITEM_TYPE
and aggregated by possible values of the specified property.- Specified by:
getAggregate
in interfaceQueryService
- Parameters:
itemType
- the String representation of the item type we want to retrieve the count of, as defined by its class'ITEM_TYPE
fieldproperty
- the property we're aggregating on, i.e. for each possible value of this property, we are counting how many items of the specified type have that value- Returns:
- a Map associating a specific value of the property to the cardinality of items with that value
- See Also:
Item for a discussion of
-
getAggregate
@Deprecated public Map<String,Long> getAggregate(String itemType, String property, AggregateQuery query)
Deprecated.As of version 1.3.0-incubating, usegetAggregateWithOptimizedQuery(String, String, AggregateQuery)
insteadDescription copied from interface:QueryService
TODO: rework, this method is confusing since it either behaves likeQueryService.getAggregate(String, String)
if query is null but completely differently if it isn't Retrieves the number of items with the specified type as defined by the Item subclass public fieldITEM_TYPE
and aggregated by possible values of the specified property or, if the specified query is notnull
, perform that aggregate query. Also return the global count of document matching theITEM_TYPE
- Specified by:
getAggregate
in interfaceQueryService
- Parameters:
itemType
- the String representation of the item type we want to retrieve the count of, as defined by its class'ITEM_TYPE
fieldproperty
- the property we're aggregating on, i.e. for each possible value of this property, we are counting how many items of the specified type have that valuequery
- theAggregateQuery
specifying the aggregation that should be perfomed- Returns:
- a Map associating a specific value of the property to the cardinality of items with that value
- See Also:
Item for a discussion of
-
getAggregateWithOptimizedQuery
public Map<String,Long> getAggregateWithOptimizedQuery(String itemType, String property, AggregateQuery query)
Description copied from interface:QueryService
Retrieves the number of items with the specified type as defined by the Item subclass public fieldITEM_TYPE
and aggregated by possible values of the specified property or, if the specified query is notnull
, perform that aggregate query. This aggregate won't return the global count and should therefore be much faster thanQueryService.getAggregate(String, String, AggregateQuery)
- Specified by:
getAggregateWithOptimizedQuery
in interfaceQueryService
- Parameters:
itemType
- the String representation of the item type we want to retrieve the count of, as defined by its class'ITEM_TYPE
fieldproperty
- the property we're aggregating on, i.e. for each possible value of this property, we are counting how many items of the specified type have that valuequery
- theAggregateQuery
specifying the aggregation that should be perfomed- Returns:
- a Map associating a specific value of the property to the cardinality of items with that value
- See Also:
Item for a discussion of
-
getMetric
public Map<String,Double> getMetric(String type, String property, String slashConcatenatedMetrics, Condition condition)
Description copied from interface:QueryService
Retrieves the specified metrics for the specified field of items of the specified type as defined by the Item subclass public fieldITEM_TYPE
and matching the specifiedCondition
.- Specified by:
getMetric
in interfaceQueryService
- Parameters:
type
- the String representation of the item type we want to retrieve the count of, as defined by its class'ITEM_TYPE
fieldproperty
- the name of the field for which the metrics should be computedslashConcatenatedMetrics
- a String specifying which metrics should be computed, separated by a slash (/
) (possible values:sum
for the sum of the values,avg
for the average of the values,min
for the minimum value andmax
for the maximum value)condition
- the condition the items must satisfy- Returns:
- a Map associating computed metric name as key to its associated value
- See Also:
Item for a discussion of
-
getQueryCount
public long getQueryCount(String itemType, Condition condition)
Description copied from interface:QueryService
Retrieves the number of items of the specified type as defined by the Item subclass public fieldITEM_TYPE
and matching the specifiedCondition
.- Specified by:
getQueryCount
in interfaceQueryService
- Parameters:
itemType
- the String representation of the item type we want to retrieve the count of, as defined by its class'ITEM_TYPE
fieldcondition
- the condition the items must satisfy- Returns:
- the number of items of the specified type
- See Also:
Item for a discussion of
-
-