Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        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());
                    }
                }
            }
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 5
0
 /// <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));
 }
Ejemplo n.º 6
0
 /// <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()))
 {
 }