Interface QueryService

All Known Implementing Classes:
QueryServiceImpl

public interface QueryService
A service to perform queries.
  • Method Details

    • getAggregate

      Map<String,Long> getAggregate(String itemType, String property)
      Retrieves the number of items with the specified type as defined by the Item subclass public field ITEM_TYPE and aggregated by possible values of the specified property.
      Parameters:
      itemType - the String representation of the item type we want to retrieve the count of, as defined by its class' ITEM_TYPE field
      property - 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:
    • getAggregate

      @Deprecated Map<String,Long> getAggregate(String itemType, String property, AggregateQuery query)
      Deprecated.
      As of 1.3.0-incubating, please use getAggregateWithOptimizedQuery(String, String, AggregateQuery) instead
      TODO: rework, this method is confusing since it either behaves like 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 field ITEM_TYPE and aggregated by possible values of the specified property or, if the specified query is not null, perform that aggregate query. Also return the global count of document matching the ITEM_TYPE
      Parameters:
      itemType - the String representation of the item type we want to retrieve the count of, as defined by its class' ITEM_TYPE field
      property - 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
      query - the AggregateQuery 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:
    • getAggregateWithOptimizedQuery

      Map<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 field ITEM_TYPE and aggregated by possible values of the specified property or, if the specified query is not null, perform that aggregate query. This aggregate won't return the global count and should therefore be much faster than getAggregate(String, String, AggregateQuery)
      Parameters:
      itemType - the String representation of the item type we want to retrieve the count of, as defined by its class' ITEM_TYPE field
      property - 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
      query - the AggregateQuery 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:
    • getQueryCount

      long getQueryCount(String itemType, Condition condition)
      Retrieves the number of items of the specified type as defined by the Item subclass public field ITEM_TYPE and matching the specified Condition.
      Parameters:
      condition - the condition the items must satisfy
      itemType - the String representation of the item type we want to retrieve the count of, as defined by its class' ITEM_TYPE field
      Returns:
      the number of items of the specified type
      See Also:
    • getMetric

      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 field ITEM_TYPE and matching the specified Condition.
      Parameters:
      condition - the condition the items must satisfy
      slashConcatenatedMetrics - 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 and max for the maximum value)
      property - the name of the field for which the metrics should be computed
      type - the String representation of the item type we want to retrieve the count of, as defined by its class' ITEM_TYPE field
      Returns:
      a Map associating computed metric name as key to its associated value
      See Also: