コード例 #1
0
        public virtual void TestSetBufferSize()
        {
            var indexDir = CreateTempDir("testSetBufferSize");

            using (var dir = new MockFSDirectory(indexDir, Random()))
            {
                using (var writer = new IndexWriter(dir,
                                                    (new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(Random()))).SetOpenMode(
                                                        IndexWriterConfig.OpenMode_e.CREATE).SetMergePolicy(NewLogMergePolicy(false))))
                {
                    for (int i = 0; i < 37; i++)
                    {
                        var doc = new Document();
                        doc.Add(NewTextField("content", "aaa bbb ccc ddd" + i, Field.Store.YES));
                        doc.Add(NewTextField("id", "" + i, Field.Store.YES));
                        writer.AddDocument(doc);
                    }

                    dir.AllIndexInputs.Clear();
                    dir.TweakBufferSizes();
                    writer.DeleteDocuments(new Term("id", "0"));

                    var aaa = new Term("content", "aaa");
                    var bbb = new Term("content", "bbb");

                    IndexSearcher searcher;
                    ScoreDoc[]    hits;
                    using (var reader = DirectoryReader.Open(writer, true))
                    {
                        searcher = NewSearcher(reader);
                        hits     = searcher.Search(new TermQuery(bbb), null, 1000).ScoreDocs;
                        dir.TweakBufferSizes();
                        Assert.AreEqual(36, hits.Length);
                    }

                    dir.TweakBufferSizes();
                    writer.DeleteDocuments(new Term("id", "4"));
                    using (var reader = DirectoryReader.Open(writer, true))
                    {
                        searcher = NewSearcher(reader);

                        hits = searcher.Search(new TermQuery(bbb), null, 1000).ScoreDocs;
                        dir.TweakBufferSizes();
                        Assert.AreEqual(35, hits.Length);
                        dir.TweakBufferSizes();
                        hits = searcher.Search(new TermQuery(new Term("id", "33")), null, 1000).ScoreDocs;
                        dir.TweakBufferSizes();
                        Assert.AreEqual(1, hits.Length);
                        hits = searcher.Search(new TermQuery(aaa), null, 1000).ScoreDocs;
                        dir.TweakBufferSizes();
                        Assert.AreEqual(35, hits.Length);
                    }
                }
            }
        }
コード例 #2
0
        public virtual void  TestSetBufferSize()
        {
            System.IO.FileInfo indexDir = new System.IO.FileInfo(System.IO.Path.Combine(SupportClass.AppSettings.Get("tempDir", ""), "testSetBufferSize"));
            MockFSDirectory    dir      = new MockFSDirectory(indexDir, NewRandom());

            try
            {
                IndexWriter writer = new IndexWriter(dir, new WhitespaceAnalyzer(), true, IndexWriter.MaxFieldLength.LIMITED);
                writer.SetUseCompoundFile(false);
                for (int i = 0; i < 37; i++)
                {
                    Document doc = new Document();
                    doc.Add(new Field("content", "aaa bbb ccc ddd" + i, Field.Store.YES, Field.Index.ANALYZED));
                    doc.Add(new Field("id", "" + i, Field.Store.YES, Field.Index.ANALYZED));
                    writer.AddDocument(doc);
                }
                writer.Close();

                dir.allIndexInputs.Clear();

                IndexReader reader = IndexReader.Open(dir);
                Term        aaa    = new Term("content", "aaa");
                Term        bbb    = new Term("content", "bbb");
                Term        ccc    = new Term("content", "ccc");
                Assert.AreEqual(37, reader.DocFreq(ccc));
                reader.DeleteDocument(0);
                Assert.AreEqual(37, reader.DocFreq(aaa));
                dir.tweakBufferSizes();
                reader.DeleteDocument(4);
                Assert.AreEqual(reader.DocFreq(bbb), 37);
                dir.tweakBufferSizes();

                IndexSearcher searcher = new IndexSearcher(reader);
                ScoreDoc[]    hits     = searcher.Search(new TermQuery(bbb), null, 1000).scoreDocs;
                dir.tweakBufferSizes();
                Assert.AreEqual(35, hits.Length);
                dir.tweakBufferSizes();
                hits = searcher.Search(new TermQuery(new Term("id", "33")), null, 1000).scoreDocs;
                dir.tweakBufferSizes();
                Assert.AreEqual(1, hits.Length);
                hits = searcher.Search(new TermQuery(aaa), null, 1000).scoreDocs;
                dir.tweakBufferSizes();
                Assert.AreEqual(35, hits.Length);
                searcher.Close();
                reader.Close();
            }
            finally
            {
                _TestUtil.RmDir(indexDir);
            }
        }
コード例 #3
0
		public virtual void  TestSetBufferSize()
		{
			System.IO.FileInfo indexDir = new System.IO.FileInfo(System.IO.Path.Combine(SupportClass.AppSettings.Get("tempDir", ""), "testSetBufferSize"));
			MockFSDirectory dir = new MockFSDirectory(indexDir);
			try
			{
				IndexWriter writer = new IndexWriter(dir, new WhitespaceAnalyzer(), true);
				writer.SetUseCompoundFile(false);
				for (int i = 0; i < 37; i++)
				{
					Document doc = new Document();
					doc.Add(new Field("content", "aaa bbb ccc ddd" + i, Field.Store.YES, Field.Index.TOKENIZED));
					doc.Add(new Field("id", "" + i, Field.Store.YES, Field.Index.TOKENIZED));
					writer.AddDocument(doc);
				}
				writer.Close();
				
				dir.allIndexInputs.Clear();
				
				IndexReader reader = IndexReader.Open(dir);
				Term aaa = new Term("content", "aaa");
				Term bbb = new Term("content", "bbb");
				Term ccc = new Term("content", "ccc");
				Assert.AreEqual(reader.DocFreq(ccc), 37);
				reader.DeleteDocument(0);
				Assert.AreEqual(reader.DocFreq(aaa), 37);
				dir.TweakBufferSizes();
				reader.DeleteDocument(4);
				Assert.AreEqual(reader.DocFreq(bbb), 37);
				dir.TweakBufferSizes();
				
				IndexSearcher searcher = new IndexSearcher(reader);
				Hits hits = searcher.Search(new TermQuery(bbb));
				dir.TweakBufferSizes();
				Assert.AreEqual(35, hits.Length());
				dir.TweakBufferSizes();
				hits = searcher.Search(new TermQuery(new Term("id", "33")));
				dir.TweakBufferSizes();
				Assert.AreEqual(1, hits.Length());
				hits = searcher.Search(new TermQuery(aaa));
				dir.TweakBufferSizes();
				Assert.AreEqual(35, hits.Length());
				searcher.Close();
				reader.Close();
			}
			finally
			{
				_TestUtil.RmDir(indexDir);
			}
		}
コード例 #4
0
		public virtual void  TestSetBufferSize()
		{
			System.IO.DirectoryInfo indexDir = new System.IO.DirectoryInfo(System.IO.Path.Combine(AppSettings.Get("tempDir", ""), "testSetBufferSize"));
			MockFSDirectory dir = new MockFSDirectory(indexDir, NewRandom());
			try
			{
				IndexWriter writer = new IndexWriter(dir, new WhitespaceAnalyzer(), true, IndexWriter.MaxFieldLength.LIMITED);
				writer.UseCompoundFile = false;
				for (int i = 0; i < 37; i++)
				{
					Document doc = new Document();
					doc.Add(new Field("content", "aaa bbb ccc ddd" + i, Field.Store.YES, Field.Index.ANALYZED));
					doc.Add(new Field("id", "" + i, Field.Store.YES, Field.Index.ANALYZED));
					writer.AddDocument(doc);
				}
				writer.Close();
				
				dir.allIndexInputs.Clear();
				
				IndexReader reader = IndexReader.Open(dir, false);
				Term aaa = new Term("content", "aaa");
				Term bbb = new Term("content", "bbb");
				Term ccc = new Term("content", "ccc");
				Assert.AreEqual(37, reader.DocFreq(ccc));
				reader.DeleteDocument(0);
				Assert.AreEqual(37, reader.DocFreq(aaa));
				dir.tweakBufferSizes();
				reader.DeleteDocument(4);
				Assert.AreEqual(reader.DocFreq(bbb), 37);
				dir.tweakBufferSizes();
				
				IndexSearcher searcher = new IndexSearcher(reader);
				ScoreDoc[] hits = searcher.Search(new TermQuery(bbb), null, 1000).ScoreDocs;
				dir.tweakBufferSizes();
				Assert.AreEqual(35, hits.Length);
				dir.tweakBufferSizes();
				hits = searcher.Search(new TermQuery(new Term("id", "33")), null, 1000).ScoreDocs;
				dir.tweakBufferSizes();
				Assert.AreEqual(1, hits.Length);
				hits = searcher.Search(new TermQuery(aaa), null, 1000).ScoreDocs;
				dir.tweakBufferSizes();
				Assert.AreEqual(35, hits.Length);
				searcher.Close();
				reader.Close();
			}
			finally
			{
				_TestUtil.RmDir(indexDir);
			}
		}
コード例 #5
0
        public virtual void TestSetBufferSize()
        {
            //File indexDir = CreateTempDir("testSetBufferSize");
            var indexDir = new DirectoryInfo(Path.Combine(AppSettings.Get("tempDir", ""), "testSetBufferSize"));
            try
            {
                using (MockFSDirectory dir = new MockFSDirectory(indexDir, Random()))
                {
                    using (IndexWriter writer = new IndexWriter(dir,
                        (new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(Random()))).SetOpenMode(
                            IndexWriterConfig.OpenMode_e.CREATE).SetMergePolicy(NewLogMergePolicy(false))))
                    {
                        for (int i = 0; i < 37; i++)
                        {
                            var doc = new Document();
                            doc.Add(NewTextField("content", "aaa bbb ccc ddd" + i, Field.Store.YES));
                            doc.Add(NewTextField("id", "" + i, Field.Store.YES));
                            writer.AddDocument(doc);
                        }

                        dir.AllIndexInputs.Clear();
                        dir.TweakBufferSizes();
                        writer.DeleteDocuments(new Term("id", "0"));

                        var aaa = new Term("content", "aaa");
                        var bbb = new Term("content", "bbb");
                        
                        IndexSearcher searcher;
                        ScoreDoc[] hits;
                        using (var reader = DirectoryReader.Open(writer, true))
                        {
                            searcher = NewSearcher(reader);
                            hits = searcher.Search(new TermQuery(bbb), null, 1000).ScoreDocs;
                            dir.TweakBufferSizes();
                            Assert.AreEqual(36, hits.Length);
                        }

                        dir.TweakBufferSizes();
                        writer.DeleteDocuments(new Term("id", "4"));
                        using (var reader = DirectoryReader.Open(writer, true))
                        {
                            searcher = NewSearcher(reader);

                            hits = searcher.Search(new TermQuery(bbb), null, 1000).ScoreDocs;
                            dir.TweakBufferSizes();
                            Assert.AreEqual(35, hits.Length);
                            dir.TweakBufferSizes();
                            hits = searcher.Search(new TermQuery(new Term("id", "33")), null, 1000).ScoreDocs;
                            dir.TweakBufferSizes();
                            Assert.AreEqual(1, hits.Length);
                            hits = searcher.Search(new TermQuery(aaa), null, 1000).ScoreDocs;
                            dir.TweakBufferSizes();
                            Assert.AreEqual(35, hits.Length);
                        }
                    }
                }
            }
            finally
            {
                System.IO.Directory.Delete(indexDir.FullName, true);
            }
        }
コード例 #6
0
        public virtual void TestSetBufferSize()
        {
            var indexDir = CreateTempDir("testSetBufferSize");
            var dir = new MockFSDirectory(indexDir, Random());
            try
            {
                var writer = new IndexWriter(
                    dir,
                    new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(Random()))
                        .SetOpenMode(IndexWriterConfig.OpenMode_e.CREATE)
                        .SetMergePolicy(NewLogMergePolicy(false)));
                    
                for (int i = 0; i < 37; i++)
                {
                    var doc = new Document();
                    doc.Add(NewTextField("content", "aaa bbb ccc ddd" + i, Field.Store.YES));
                    doc.Add(NewTextField("id", "" + i, Field.Store.YES));
                    writer.AddDocument(doc);
                }

                dir.AllIndexInputs.Clear();

                IndexReader reader = DirectoryReader.Open(writer, true);
                var aaa = new Term("content", "aaa");
                var bbb = new Term("content", "bbb");
                reader.Dispose();

                dir.TweakBufferSizes();
                writer.DeleteDocuments(new Term("id", "0"));
                reader = DirectoryReader.Open(writer, true);
                var searcher = NewSearcher(reader);
                var hits = searcher.Search(new TermQuery(bbb), null, 1000).ScoreDocs;
                dir.TweakBufferSizes();
                Assert.AreEqual(36, hits.Length);

                reader.Dispose();

                dir.TweakBufferSizes();
                writer.DeleteDocuments(new Term("id", "4"));
                reader = DirectoryReader.Open(writer, true);
                searcher = NewSearcher(reader);

                hits = searcher.Search(new TermQuery(bbb), null, 1000).ScoreDocs;
                dir.TweakBufferSizes();
                Assert.AreEqual(35, hits.Length);
                dir.TweakBufferSizes();
                hits = searcher.Search(new TermQuery(new Term("id", "33")), null, 1000).ScoreDocs;
                dir.TweakBufferSizes();
                Assert.AreEqual(1, hits.Length);
                hits = searcher.Search(new TermQuery(aaa), null, 1000).ScoreDocs;
                dir.TweakBufferSizes();
                Assert.AreEqual(35, hits.Length);
                writer.Dispose();
                reader.Dispose();
            }
            finally
            {
                indexDir.Delete(true);
            }
        }