Skip to main content

Crossfilter component

Crossfilter represents a multi-dimensional dataset and supports multivariate filtering. It is used for powering interactive coordinated views, including List widgets. Its part of the family of components that includes also Dimension and Aggregation components.

component image

In-ports

data JSON - Any array of JSON objects or primitives.

filter JSON - Accepts a set of filters. Use Dimension component to specify filters for different dimensions and aggregations.

Out-ports

filters JSON - Outputs the current filter set across all dimensions. Event is triggered every-time any of the filters in the set is changed.

results JSON - Resulting data set after all filters are applied.

q-results <Queryable> - Queryable port with Crossfilter results. Its used by Dimension component to query aggregated results.

Overview

Crossfilter is the main component in the Crossfilter family of components. It represents a multi-dimensional dataset with multivariate filtering capability. You can use it to filter and aggregate large datasets and create interactive coordinated views with List widgets, Histograms, etc. Below is a typical configuration of Crossfilter that using a single dimension filter with aggregation.

crossfilter overview

Use Dimension component to generate filters for Crossfilter component or specify filters manually by providing the following structure as input on the filter port:

[
{
"field": "ocean",
"equal": ["Pacific", "Atlantic"],
"nameDimension": "<dimension_id>"
}
]

When filters are applied the Crossfilter producing the results on results port. Results include filtered data and metadata. Metadata field contains the total and filtered metrics, and the details about aggregations. Here is an example of the results with metadata.

{
"data": [...],
"meta": {
"total": 314,
"filtered": 23,
"aggregations": {...}
}
}

Kelp Crossfilter components are build on top of Crossfilter JavaScript library.

Settings

No additional configuration is required.