本文整理汇总了C#中Lucene.Net.Documents.Document.GetFieldables方法的典型用法代码示例。如果您正苦于以下问题:C# Lucene.Net.Documents.Document.GetFieldables方法的具体用法?C# Lucene.Net.Documents.Document.GetFieldables怎么用?C# Lucene.Net.Documents.Document.GetFieldables使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Lucene.Net.Documents.Document
的用法示例。
在下文中一共展示了Lucene.Net.Documents.Document.GetFieldables方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: TestBinaryFields
public virtual void TestBinaryFields()
{
Directory dir = new RAMDirectory();
byte[] bin = new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
IndexWriter writer = new IndexWriter(dir, new WhitespaceAnalyzer(), true, IndexWriter.MaxFieldLength.UNLIMITED);
for (int i = 0; i < 10; i++)
{
AddDoc(writer, "document number " + (i + 1));
AddDocumentWithFields(writer);
AddDocumentWithDifferentFields(writer);
AddDocumentWithTermVectorFields(writer);
}
writer.Close();
writer = new IndexWriter(dir, new WhitespaceAnalyzer(), false, IndexWriter.MaxFieldLength.LIMITED);
Document doc = new Document();
doc.Add(new Field("bin1", bin, Field.Store.YES));
doc.Add(new Field("bin2", bin, Field.Store.COMPRESS));
doc.Add(new Field("junk", "junk text", Field.Store.NO, Field.Index.ANALYZED));
writer.AddDocument(doc);
writer.Close();
IndexReader reader = IndexReader.Open(dir);
doc = reader.Document(reader.MaxDoc() - 1);
Field[] fields = doc.GetFields("bin1");
Assert.IsNotNull(fields);
Assert.AreEqual(1, fields.Length);
Field b1 = fields[0];
Assert.IsTrue(b1.IsBinary());
byte[] data1 = b1.GetBinaryValue();
Assert.AreEqual(bin.Length, b1.GetBinaryLength());
for (int i = 0; i < bin.Length; i++)
{
Assert.AreEqual(bin[i], data1[i + b1.GetBinaryOffset()]);
}
fields = doc.GetFields("bin2");
Assert.IsNotNull(fields);
Assert.AreEqual(1, fields.Length);
b1 = fields[0];
Assert.IsTrue(b1.IsBinary());
data1 = b1.GetBinaryValue();
Assert.AreEqual(bin.Length, b1.GetBinaryLength());
for (int i = 0; i < bin.Length; i++)
{
Assert.AreEqual(bin[i], data1[i + b1.GetBinaryOffset()]);
}
System.Collections.Hashtable lazyFields = new System.Collections.Hashtable();
SupportClass.CollectionsHelper.AddIfNotContains(lazyFields, "bin1");
FieldSelector sel = new SetBasedFieldSelector(new System.Collections.Hashtable(), lazyFields);
doc = reader.Document(reader.MaxDoc() - 1, sel);
Fieldable[] fieldables = doc.GetFieldables("bin1");
Assert.IsNotNull(fieldables);
Assert.AreEqual(1, fieldables.Length);
Fieldable fb1 = fieldables[0];
Assert.IsTrue(fb1.IsBinary());
Assert.AreEqual(bin.Length, fb1.GetBinaryLength());
data1 = fb1.GetBinaryValue();
Assert.AreEqual(bin.Length, fb1.GetBinaryLength());
for (int i = 0; i < bin.Length; i++)
{
Assert.AreEqual(bin[i], data1[i + fb1.GetBinaryOffset()]);
}
reader.Close();
// force optimize
writer = new IndexWriter(dir, new WhitespaceAnalyzer(), false, IndexWriter.MaxFieldLength.LIMITED);
writer.Optimize();
writer.Close();
reader = IndexReader.Open(dir);
doc = reader.Document(reader.MaxDoc() - 1);
fields = doc.GetFields("bin1");
Assert.IsNotNull(fields);
Assert.AreEqual(1, fields.Length);
b1 = fields[0];
Assert.IsTrue(b1.IsBinary());
data1 = b1.GetBinaryValue();
Assert.AreEqual(bin.Length, b1.GetBinaryLength());
for (int i = 0; i < bin.Length; i++)
{
Assert.AreEqual(bin[i], data1[i + b1.GetBinaryOffset()]);
}
fields = doc.GetFields("bin2");
Assert.IsNotNull(fields);
Assert.AreEqual(1, fields.Length);
b1 = fields[0];
Assert.IsTrue(b1.IsBinary());
data1 = b1.GetBinaryValue();
Assert.AreEqual(bin.Length, b1.GetBinaryLength());
for (int i = 0; i < bin.Length; i++)
{
Assert.AreEqual(bin[i], data1[i + b1.GetBinaryOffset()]);
}
reader.Close();
}