本文整理汇总了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();
}
示例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);
}
}
示例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();
}