public void Test1Filter() { BrowseRequest request = CreateRequest(1, "prop3"); FacetCountCollectorSource facetCountCollectorSource = attributesFacetHandler.GetFacetCountCollectorSource(request.GetSelection(AttributeHandlerName), request.GetFacetSpec(AttributeHandlerName)); RandomAccessFilter randomAccessFilter = attributesFacetHandler.BuildFilter(request.GetSelection(AttributeHandlerName)); DocIdSetIterator iterator = randomAccessFilter.GetDocIdSet(boboReader).Iterator(); int docId = iterator.NextDoc(); int[] docIds = new int[2]; int i = 0; while (docId != DocIdSetIterator.NO_MORE_DOCS) { docIds[i] = docId; i++; docId = iterator.NextDoc(); } Assert.AreEqual(Arrays.ToString(new int[] { 1, 2 }), Arrays.ToString(docIds)); BrowseResult res = browser.Browse(request); Assert.AreEqual(res.NumHits, 2); IFacetAccessible fa = res.GetFacetAccessor(AttributeHandlerName); IEnumerable <BrowseFacet> facets = fa.GetFacets(); Console.WriteLine(facets); Assert.AreEqual(3, facets.Count()); BrowseFacet facet = facets.Get(0); Assert.AreEqual(1, facet.FacetValueHitCount); }
public HistogramFacetCountCollectorSource( string dataHandlerName, FacetCountCollectorSource baseCollectorSrc, string name, FacetSpec ospec, T start, T end, T unit) { m_dataHandlerName = dataHandlerName; m_baseCollectorSrc = baseCollectorSrc; m_name = name; m_ospec = ospec; m_start = start; m_end = end; m_unit = unit; }
protected virtual FacetValidator CreateFacetValidator() { FacetHitCollector[] collectors = new FacetHitCollector[_facetCollectors.Count()]; FacetCountCollectorSource[] countCollectors = new FacetCountCollectorSource[collectors.Length]; int numPostFilters; int i = 0; int j = collectors.Length; foreach (FacetHitCollector facetCollector in _facetCollectors) { if (facetCollector._filter != null) { collectors[i] = facetCollector; countCollectors[i] = facetCollector._facetCountCollectorSource; i++; } else { j--; collectors[j] = facetCollector; countCollectors[j] = facetCollector._facetCountCollectorSource; } } numPostFilters = i; if (numPostFilters == 0) { return(new NoNeedFacetValidator(collectors)); } else if (numPostFilters == 1) { return(new OnePostFilterFacetValidator(collectors)); } else { return(new DefaultFacetValidator(collectors, numPostFilters)); } }
public void SetNextReader(BoboSegmentReader reader, int docBase) { if (CollectAllSource != null) { IFacetCountCollector collector = CollectAllSource.GetFacetCountCollector(reader, docBase); CollectAllCollectorList.Add(collector); collector.CollectAll(); } else { if (Filter != null) { CurrentPointers.DocIdSet = Filter.GetRandomAccessDocIdSet(reader); CurrentPointers.PostDocIDSetIterator = CurrentPointers.DocIdSet.GetIterator(); CurrentPointers.Doc = CurrentPointers.PostDocIDSetIterator.NextDoc(); } if (FacetCountCollectorSource != null) { CurrentPointers.FacetCountCollector = FacetCountCollectorSource.GetFacetCountCollector(reader, docBase); CountCollectorList.Add(CurrentPointers.FacetCountCollector); } } }
public override FacetCountCollectorSource GetFacetCountCollectorSource(BrowseSelection sel, FacetSpec ospec) { FacetCountCollectorSource baseCollectorSrc = m_dataFacetHandler.GetFacetCountCollectorSource(sel, ospec); return(new HistogramFacetCountCollectorSource(m_dataHandlerName, baseCollectorSrc, m_name, ospec, m_start, m_end, m_unit)); }