The aggregation API lets you compute aggregated results on documents, such as getting the count of all documents in a project, checking different authors of documents in a project and the count of documents in each of those aggregations. By specifying an additional filter or search, you can aggregate only among documents matching the specified filter or search.
When you don't specify the aggregate
field in the request
body, the default behavior is to return the count of all matched documents.
Aggregate |
Description |
Example |
---|---|---|
count | Count of documents matching the specified filters and search. |
|
cardinalityValues | Returns an approximate count of distinct values for the specified properties. |
|
cardinalityProperties | Returns an approximate count of
distinct properties for a given property path. Currently only implemented for the
["sourceFile", "metadata"] path. |
|
uniqueValues | Returns top unique values for specified properties (up to the
requested limit) and the count of each in the property specified in properties .
The list will have the highest count first. |
|
uniqueProperties | Returns top unique properties values for specified properties (up to the
requested limit) and the count of each in the property specified in properties .
The list will have the highest count first.
Currently, the |
|
Only some aggregate types currently support
aggregateFilter
Aggregate filtering works directly on the aggregated result. While a normal filter filters relevant documents, aggregate filtering filters the aggregated bucket values. This is useful for e.g. listing metadata keys; while a normal filter will return all metadata keys for related documents, the aggregate filter can be used to reduce the aggregate result even further.
Tip: use both filter
and aggregateFilter
to potentially speed up queries, as the aggregateFilter
is essentially a post filter.
Here we only show metadata keys which starts with "car".
{
"aggregate": "uniqueProperties",
"properties": [{"property": ["sourceFile", "metadata"]}],
"aggregateFilter": {"prefix": {"value": "car"}}
}
Here we only show metadata values which starts with "ctx", for the given metadata key "car-codes".
{
"aggregate": "uniqueValues",
"properties": [{"property": ["sourceFile", "metadata", "car-codes"]}],
"aggregateFilter": {"prefix": {"value": "ctx"}}
}
Count of documents.
The results of an aggregation request. The object returned depends on the aggregate specified.
The response for a failed request.
{- "filter": {
- "equals": {
- "property": [
- "type"
], - "value": "PDF"
}
}, - "aggregate": "uniqueValues",
- "properties": [
- {
- "property": [
- "author"
]
}
]
}
{- "items": [
- {
- "count": 10
}
]
}