当前位置: 首页>>代码示例>>C#>>正文


C# Lucene.Net.Index.IndexWriter.SetUseCompoundFile方法代码示例

本文整理汇总了C#中Lucene.Net.Index.IndexWriter.SetUseCompoundFile方法的典型用法代码示例。如果您正苦于以下问题:C# Lucene.Net.Index.IndexWriter.SetUseCompoundFile方法的具体用法?C# Lucene.Net.Index.IndexWriter.SetUseCompoundFile怎么用?C# Lucene.Net.Index.IndexWriter.SetUseCompoundFile使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Lucene.Net.Index.IndexWriter的用法示例。


在下文中一共展示了Lucene.Net.Index.IndexWriter.SetUseCompoundFile方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: TestBasic

		public virtual void  TestBasic()
		{
			System.Collections.Hashtable fileExtensions = new System.Collections.Hashtable();
			SupportClass.CollectionsHelper.AddIfNotContains(fileExtensions, "fdt");
			SupportClass.CollectionsHelper.AddIfNotContains(fileExtensions, "fdx");
			
			Directory primaryDir = new MockRAMDirectory();
			RAMDirectory secondaryDir = new MockRAMDirectory();
			
			FileSwitchDirectory fsd = new FileSwitchDirectory(fileExtensions, primaryDir, secondaryDir, true);
			IndexWriter writer = new IndexWriter(fsd, new WhitespaceAnalyzer(), IndexWriter.MaxFieldLength.LIMITED);
			writer.SetUseCompoundFile(false);
			TestIndexWriterReader.CreateIndexNoClose(true, "ram", writer);
			IndexReader reader = writer.GetReader();
			Assert.AreEqual(100, reader.MaxDoc());
			writer.Commit();
			// we should see only fdx,fdt files here
			System.String[] files = primaryDir.ListAll();
			Assert.IsTrue(files.Length > 0);
			for (int x = 0; x < files.Length; x++)
			{
				System.String ext = FileSwitchDirectory.GetExtension(files[x]);
				Assert.IsTrue(fileExtensions.Contains(ext));
			}
			files = secondaryDir.ListAll();
			Assert.IsTrue(files.Length > 0);
			// we should not see fdx,fdt files here
			for (int x = 0; x < files.Length; x++)
			{
				System.String ext = FileSwitchDirectory.GetExtension(files[x]);
				Assert.IsFalse(fileExtensions.Contains(ext));
			}
			reader.Close();
			writer.Close();
			
			files = fsd.ListAll();
			for (int i = 0; i < files.Length; i++)
			{
				Assert.IsNotNull(files[i]);
			}
			fsd.Close();
		}
开发者ID:Rationalle,项目名称:ravendb,代码行数:42,代码来源:TestFileSwitchDirectory.cs

示例2: TestSetBufferSize

		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);
			}
		}
开发者ID:vikasraz,项目名称:indexsearchutils,代码行数:50,代码来源:TestBufferedIndexInput.cs

示例3: Index

		/// <summary> Forms a Lucene index based on the 2 maps.
		/// 
		/// </summary>
		/// <param name="indexDir">the direcotry where the index should be created
		/// </param>
		/// <param name="">word2Nums
		/// </param>
		/// <param name="">num2Words
		/// </param>
		private static void  Index(System.String indexDir, System.Collections.IDictionary word2Nums, System.Collections.IDictionary num2Words)
		{
			int row = 0;
			int mod = 1;
			
			// override the specific index if it already exists
			IndexWriter writer = new IndexWriter(indexDir, ana, true);
			writer.SetUseCompoundFile(true); // why?
			// blindly up these parameters for speed
			writer.SetMergeFactor(writer.GetMergeFactor() * 2);
			writer.SetMaxBufferedDocs(writer.GetMaxBufferedDocs() * 2);
			System.Collections.IEnumerator i1 = word2Nums.Keys.GetEnumerator();
			while (i1.MoveNext())
			// for each word
			{
				System.String g = (System.String) i1.Current;
				Document doc = new Document();
				
				int n = Index(word2Nums, num2Words, g, doc);
				if (n > 0)
				{
					doc.Add(new Field(F_WORD, g, Field.Store.YES, Field.Index.UN_TOKENIZED));
					if ((++row % mod) == 0)
					{
						o.WriteLine("\trow=" + row + "/" + word2Nums.Count + " doc= " + doc);
						mod *= 2;
					}
					writer.AddDocument(doc);
				} // else degenerate
			}
			o.WriteLine("Optimizing..");
			writer.Optimize();
			writer.Close();
		}
开发者ID:Rationalle,项目名称:ravendb,代码行数:43,代码来源:Syns2Index.cs


注:本文中的Lucene.Net.Index.IndexWriter.SetUseCompoundFile方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。