public virtual void TestDifferentDVFormatPerField()
{
Directory dir = NewDirectory();
IndexWriterConfig conf = NewIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(Random()));
conf.SetCodec(new Lucene46CodecAnonymousInnerClassHelper(this));
IndexWriter writer = new IndexWriter(dir, conf);
Document doc = new Document();
doc.Add(new StringField("key", "doc", Store.NO));
doc.Add(new BinaryDocValuesField("bdv", ToBytes(5L)));
doc.Add(new SortedDocValuesField("sorted", new BytesRef("value")));
writer.AddDocument(doc); // flushed document
writer.Commit();
writer.AddDocument(doc); // in-memory document
writer.UpdateBinaryDocValue(new Term("key", "doc"), "bdv", ToBytes(17L));
writer.Dispose();
DirectoryReader reader = DirectoryReader.Open(dir);
AtomicReader r = SlowCompositeReaderWrapper.Wrap(reader);
BinaryDocValues bdv = r.GetBinaryDocValues("bdv");
SortedDocValues sdv = r.GetSortedDocValues("sorted");
BytesRef scratch = new BytesRef();
for (int i = 0; i < r.MaxDoc; i++)
{
Assert.AreEqual(17, GetValue(bdv, i, scratch));
sdv.Get(i, scratch);
Assert.AreEqual(new BytesRef("value"), scratch);
}
reader.Dispose();
dir.Dispose();
}