/// <summary> /// Constructor /// </summary> /// <param name="reader">Directory reader</param> /// <param name="facetHandlers">List of facet handlers</param> /// <returns>A new BoboMultiReader instance.</returns> public static BoboMultiReader GetInstance(DirectoryReader reader, ICollection <IFacetHandler> facetHandlers) { BoboMultiReader boboReader = new BoboMultiReader(reader, facetHandlers); boboReader.FacetInit(); return(boboReader); }
public void TestNumberRangeWithInt() { // Field. string field = "number"; // Lucene index. using (DirectoryReader reader = DirectoryReader.Open(this._indexDir)) { // Bobo reader. using (BoboMultiReader boboReader = BoboMultiReader.GetInstance(reader, this._facetHandlers)) { // Request. BrowseRequest browseRequest = new BrowseRequest(); browseRequest.Count = 10; browseRequest.Offset = 0; browseRequest.FetchStoredFields = true; // Selection. BrowseSelection sel = new BrowseSelection(field); browseRequest.AddSelection(sel); // Query. MatchAllDocsQuery query = new MatchAllDocsQuery(); // Output. FacetSpec spec = new FacetSpec(); spec.OrderBy = FacetSpec.FacetSortSpec.OrderValueAsc; spec.MaxCount = 10; browseRequest.SetFacetSpec(field, spec); // Browse. IBrowsable browser = new BoboBrowser(boboReader); using (BrowseResult result = browser.Browse(browseRequest)) { // Results. int totalHits = result.NumHits; BrowseHit[] hits = result.Hits; IDictionary <String, IFacetAccessible> facetMap = result.FacetMap; IFacetAccessible facets = facetMap[field]; List <BrowseFacet> facetVals = facets.GetFacets().ToList(); // Check. Assert.AreEqual(10, totalHits); Assert.AreEqual(5, facetVals.Count); Assert.AreEqual("[0000000000 TO 0000001000](3)", facetVals[0].ToString()); Assert.AreEqual("[0000001000 TO 0000010000](3)", facetVals[1].ToString()); Assert.AreEqual("[0000010000 TO 0000100000](2)", facetVals[2].ToString()); Assert.AreEqual("[0000100000 TO 0001000000](3)", facetVals[3].ToString()); Assert.AreEqual("[0001000000 TO *](3)", facetVals[4].ToString()); } } } }
public void TestWithSingleCommit() { string text = "text"; Document doc1 = new Document(); doc1.Add(new TextField(text, "Foo1", Field.Store.YES)); m_indexWriter.AddDocument(doc1); Document doc2 = new Document(); doc2.Add(new TextField(text, "Foo2", Field.Store.YES)); m_indexWriter.AddDocument(doc2); Document doc3 = new Document(); doc3.Add(new TextField(text, "Foo3", Field.Store.YES)); m_indexWriter.AddDocument(doc3); m_indexWriter.Commit(); List <IFacetHandler> handlerList = new List <IFacetHandler>(); DirectoryReader reader = BoboMultiReader.Open(m_indexWriter, true); BoboMultiReader boboMultiReader = BoboMultiReader.GetInstance(reader, handlerList); BrowseRequest br = new BrowseRequest(); br.Count = (10); br.Offset = (0); QueryParser parser = new QueryParser(LuceneVersion.LUCENE_48, "text", new StandardAnalyzer(LuceneVersion.LUCENE_48)); Lucene.Net.Search.Query q = parser.Parse("Foo*"); br.Query = (q); BoboBrowser browser = new BoboBrowser(boboMultiReader); BrowseResult result = browser.Browse(br); int totalHits = result.NumHits; BrowseHit[] hits = result.Hits; Assert.AreEqual(3, totalHits, "should be 3 hits"); Assert.AreEqual(0, hits[0].DocId, "should be doc 0"); Assert.AreEqual(1, hits[1].DocId, "should be doc 1"); Assert.AreEqual(2, hits[2].DocId, "should be doc 2"); result.Dispose(); }
public void TestMultiValPath() { DirectoryReader reader = DirectoryReader.Open(directory); BoboMultiReader boboReader = BoboMultiReader.GetInstance(reader, facetHandlers); BoboBrowser browser = new BoboBrowser(boboReader); BrowseRequest req = new BrowseRequest(); BrowseSelection sel = new BrowseSelection(PathHandlerName); sel.AddValue("/a"); var propMap = new Dictionary <String, String>(); propMap.Put(PathFacetHandler.SEL_PROP_NAME_DEPTH, "0"); propMap.Put(PathFacetHandler.SEL_PROP_NAME_STRICT, "false"); sel.SetSelectionProperties(propMap); req.AddSelection(sel); FacetSpec fs = new FacetSpec(); fs.MinHitCount = (1); req.SetFacetSpec(PathHandlerName, fs); BrowseResult res = browser.Browse(req); Assert.AreEqual(res.NumHits, 1); IFacetAccessible fa = res.GetFacetAccessor(PathHandlerName); ICollection <BrowseFacet> facets = fa.GetFacets(); Console.WriteLine(facets); Assert.AreEqual(1, facets.Count); BrowseFacet facet = facets.Get(0); Assert.AreEqual(2, facet.FacetValueHitCount); }
/// <summary> /// Constructor /// </summary> /// <param name="reader">Directory reader</param> /// <returns>A new BoboMultiReader instance.</returns> public static BoboMultiReader GetInstance(DirectoryReader reader) { return(BoboMultiReader.GetInstance(reader, null)); }
/// <summary> /// Initializes a new instance of the <see cref="T:BoboBrowser"/> class with the specified <see cref="T:BoboIndexReader"/> instance. /// </summary> /// <param name="reader">An open <see cref="T:BoboIndexReader"/> instance.</param> public BoboBrowser(BoboMultiReader reader) : base(CreateBrowsables(reader.GetSubReaders())) { }