2013-03-19 21 views
7

Nel Crossfilter documentation, si afferma quanto segue.Perché è così in Crossfilter?

un raggruppamento interseca i filtri correnti del filtro incrociato, ad eccezione del filtro della quota associata. Pertanto, i metodi di gruppo considerano solo i record che soddisfano tutti i filtri tranne il filtro di questa dimensione. Quindi, se il filtro incrociato dei pagamenti viene filtrato per tipo e totale, il gruppo per totale osserva solo il filtro per tipo.

Qual è il motivo dietro questo e qual è il modo di aggirarlo?

risposta

9

Il motivo è che Crossfilter è progettato per filtrare su viste coordinate. In questo scenario, di solito stai filtrando su una dimensione visualizzata e vuoi vedere altre dimensioni cambiare in base al filtro. Ma la dimensione in cui il filtro è definito dovrebbe rimanere costante, in parte perché sarebbe ridondante (il meccanismo di filtro è solitamente visualizzato visivamente già) e in parte perché non vuoi che i valori delle tue dimensioni salti mentre cerchi di filtrarli .

In ogni caso, per aggirarlo è possibile definire due dimensioni identiche sullo stesso attributo. Utilizza una dimensione per il filtro e l'altra per il raggruppamento. In questo modo, per quanto riguarda Crossfilter, la dimensione del filtro e le dimensioni di raggruppamento sono separate.

+2

Questo è il tipo di soluzione che mi farebbe stare male con me stesso – Renaud

+0

@Reno, potrebbe sembrare strano ma crossfilter è stato progettato per un particolare effetto interattivo. Non è una struttura dati pura. Quindi se vuoi un effetto diverso, usa la libreria in modo diverso. – Gordon