Esempio n. 1
0
        public void MultiIndex_Simple_Search()
        {
            var analyzer = new StandardAnalyzer(Version.LUCENE_30);

            using (var luceneDir1 = new RandomIdRAMDirectory())
                using (var luceneDir2 = new RandomIdRAMDirectory())
                    using (var luceneDir3 = new RandomIdRAMDirectory())
                        using (var luceneDir4 = new RandomIdRAMDirectory())
                            using (var indexer1 = new TestIndex(luceneDir1, analyzer))
                                using (var indexer2 = new TestIndex(luceneDir2, analyzer))
                                    using (var indexer3 = new TestIndex(luceneDir3, analyzer))
                                        using (var indexer4 = new TestIndex(luceneDir4, analyzer))

                                        {
                                            indexer1.IndexItem(ValueSet.FromObject(1.ToString(), "content", new { item1 = "value1", item2 = "The agitated zebras gallop back and forth in short, panicky dashes, then skitter off into the absolute darkness." }));
                                            indexer2.IndexItem(ValueSet.FromObject(1.ToString(), "content", new { item1 = "value2", item2 = "The festival lasts five days and celebrates the victory of good over evil, light over darkness, and knowledge over ignorance." }));
                                            indexer3.IndexItem(ValueSet.FromObject(1.ToString(), "content", new { item1 = "value3", item2 = "They are expected to confront the darkness and show evidence that they have done so in their papers" }));
                                            indexer4.IndexItem(ValueSet.FromObject(1.ToString(), "content", new { item1 = "value4", item2 = "Scientists believe the lake could be home to cold-loving microbial life adapted to living in total darkness." }));
                                            indexer3.IndexItem(ValueSet.FromObject(2.ToString(), "content", new { item1 = "value3", item2 = "Scotch scotch scotch, i love scotch" }));
                                            indexer4.IndexItem(ValueSet.FromObject(2.ToString(), "content", new { item1 = "value4", item2 = "60% of the time, it works everytime" }));

                                            using (var searcher = new MultiIndexSearcher("testSearcher",
                                                                                         new[] { indexer1, indexer2, indexer3, indexer4 },
                                                                                         analyzer))
                                            {
                                                var result = searcher.Search("darkness");

                                                Assert.AreEqual(4, result.TotalItemCount);
                                                foreach (var r in result)
                                                {
                                                    Console.WriteLine("Score = " + r.Score);
                                                }
                                            }
                                        }
        }
Esempio n. 2
0
        public void Initialize()
        {
            _cwsDir        = new RAMDirectory();
            _pdfDir        = new RAMDirectory();
            _simpleDir     = new RAMDirectory();
            _conventionDir = new RAMDirectory();

            //get all of the indexers and rebuild them all first
            var indexers = new IIndexer[]
            {
                IndexInitializer.GetUmbracoIndexer(_cwsDir),
                IndexInitializer.GetSimpleIndexer(_simpleDir),
                IndexInitializer.GetUmbracoIndexer(_conventionDir)
            };

            foreach (var i in indexers)
            {
                try
                {
                    i.RebuildIndex();
                }
                finally
                {
                    var d = i as IDisposable;
                    if (d != null)
                    {
                        d.Dispose();
                    }
                }
            }

            //now get the multi index searcher for all indexes
            _searcher = IndexInitializer.GetMultiSearcher(_pdfDir, _simpleDir, _conventionDir, _cwsDir);
        }
        internal BaseLuceneSearcher InitMultiIndexSearcher(BaseLuceneSearcher searcher, NameValueCollection entryIndexSets)
        {
            var searchProvider = new MultiIndexSearcher();

            searchProvider.Initialize(searcher.Name, entryIndexSets);

            return(searchProvider);
        }
Esempio n. 4
0
        public void MultiIndex_Field_Count()
        {
            var analyzer = new StandardAnalyzer(Version.LUCENE_30);

            using (var luceneDir1 = new RandomIdRAMDirectory())
                using (var luceneDir2 = new RandomIdRAMDirectory())
                    using (var luceneDir3 = new RandomIdRAMDirectory())
                        using (var luceneDir4 = new RandomIdRAMDirectory())
                            using (var indexer1 = new TestIndex(luceneDir1, analyzer)
                            {
                                RunAsync = false
                            })
                                using (var indexer2 = new TestIndex(luceneDir2, analyzer)
                                {
                                    RunAsync = false
                                })
                                    using (var indexer3 = new TestIndex(luceneDir3, analyzer)
                                    {
                                        RunAsync = false
                                    })
                                        using (var indexer4 = new TestIndex(luceneDir4, analyzer)
                                        {
                                            RunAsync = false
                                        })
                                        {
                                            indexer1.IndexItem(ValueSet.FromObject(1.ToString(), "content", new { item1 = "hello", item2 = "The agitated zebras gallop back and forth in short, panicky dashes, then skitter off into the absolute darkness." }));
                                            indexer2.IndexItem(ValueSet.FromObject(1.ToString(), "content", new { item1 = "world", item2 = "The festival lasts five days and celebrates the victory of good over evil, light over darkness, and knowledge over ignorance." }));
                                            indexer3.IndexItem(ValueSet.FromObject(1.ToString(), "content", new { item1 = "here", item2 = "They are expected to confront the darkness and show evidence that they have done so in their papers" }));
                                            indexer4.IndexItem(ValueSet.FromObject(1.ToString(), "content", new { item1 = "are", item2 = "Scientists believe the lake could be home to cold-loving microbial life adapted to living in total darkness." }));
                                            indexer3.IndexItem(ValueSet.FromObject(2.ToString(), "content", new { item3 = "some", item2 = "Scotch scotch scotch, i love scotch" }));
                                            indexer4.IndexItem(ValueSet.FromObject(2.ToString(), "content", new { item4 = "values", item2 = "60% of the time, it works everytime" }));

                                            using (var searcher = new MultiIndexSearcher("testSearcher",
                                                                                         new[] { indexer1, indexer2, indexer3, indexer4 },
                                                                                         analyzer))
                                            {
                                                var result = searcher.GetAllIndexedFields();
                                                //will be item1 , item2, item3, and item4
                                                Assert.AreEqual(4, result.Count());
                                                foreach (var s in new[] { "item1", "item2", "item3", "item4" })
                                                {
                                                    Assert.IsTrue(result.Contains(s));
                                                }
                                            }
                                        }
        }
Esempio n. 5
0
        public void Dont_Initialize_Searchers_On_Dispose_If_Not_Already_Initialized()
        {
            var analyzer = new StandardAnalyzer(Version.LUCENE_30);

            using (var luceneDir1 = new RandomIdRAMDirectory())
                using (var luceneDir2 = new RandomIdRAMDirectory())
                    using (var luceneDir3 = new RandomIdRAMDirectory())
                        using (var luceneDir4 = new RandomIdRAMDirectory())
                            using (var indexer1 = new TestIndex(luceneDir1, analyzer))
                                using (var indexer2 = new TestIndex(luceneDir2, analyzer))
                                    using (var indexer3 = new TestIndex(luceneDir3, analyzer))
                                        using (var indexer4 = new TestIndex(luceneDir4, analyzer))
                                        {
                                            var searcher = new MultiIndexSearcher("testSearcher",
                                                                                  new[] { indexer1, indexer2, indexer3, indexer4 },
                                                                                  analyzer);

                                            Assert.IsFalse(searcher.SearchersInitialized);

                                            searcher.Dispose();

                                            Assert.IsFalse(searcher.SearchersInitialized);
                                        }
        }
        public static MultiIndexSearcher GetMultiSearcher(Directory pdfDir, Directory simpleDir, Directory conventionDir, Directory cwsDir)
        {
            var i = new MultiIndexSearcher(new[] { pdfDir, simpleDir, conventionDir, cwsDir }, new StandardAnalyzer(Version.LUCENE_29));

            return(i);
        }
Esempio n. 7
0
        public MultiIndexSearcher GetMultiSearcher(DirectoryInfo pdfDir, DirectoryInfo simpleDir, DirectoryInfo conventionDir, DirectoryInfo cwsDir)
        {
            var i = new MultiIndexSearcher(new[] { pdfDir, simpleDir, conventionDir, cwsDir }, new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_29));

            return(i);
        }