2014-11-19 3 views
0

크로스 필터에서 여러 개의 크기 (예 : 크기 날짜, 카테고리, 상태)를 사용합니다. 그것은 모두 예상대로 작동하지만 단일 데이터 객체를 빠르게 검색하기 위해 id-Dimension을 갖고 싶습니다.크로스 필터 : 다른 크기의 필터 무시

문제이다

I이 적용된다 (필터 아웃 식 MYID와 오브젝트)를 idDimension.filter (MYID)과 동시에 다른 필터를 필터링하면 crossfilter을 찾을 수 없습니다 주어진 데이터 객체. (이후에는 idDimension.filter (null)을 재설정했다.

단일 교차 필터 쿼리에 대해 다른 모든 필터를 무시할 수있는 방법이 있습니까? 또는 현재 필터를 저장하고 복원하는 방법이 있어야합니다.

답변

0

단일 레코드를 검색하기 위해 고유 한 값 차원에서 필터를 수행하면 Crossfilter에서 실제로 비효율적입니다. 그러면 필터를 제거 할 때 모든 레코드를 제외한 모든 레코드가 모든 그룹에서 제거 된 다음 다시 추가됩니다. 즉, 그룹 집계 추가 및 빼기 함수는 실제로 각 레코드에 대해 두 번 실행됩니다. 이유는 전혀 없습니다.

정확히 무엇이 필요한지에 따라 다르지만 Crossfilter 외부의 모든 레코드 배열을 ID 속성에 정렬하고 crossfilter.bisect를 사용하여 레코드를 찾거나지도를 만드는 것이 더 좋은 방법이라고 생각합니다. (브라우저가 지원하는 경우 ES6 맵을 사용하거나 d3.map과 같은 다른 구현을 사용) Map.prototype.get()을 사용하여 레코드를 찾습니다. 즉, Crossfilter를

까지 사용하지 마십시오.