Skip to content

Commit 56c68f5

Browse files
committed
add ff creation benchmark
1 parent f5e6604 commit 56c68f5

File tree

1 file changed

+31
-1
lines changed
  • src/fastfield/multivalued

1 file changed

+31
-1
lines changed

src/fastfield/multivalued/mod.rs

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -428,7 +428,7 @@ mod bench {
428428
let write: WritePtr = directory.open_write(Path::new("test")).unwrap();
429429
let mut serializer = CompositeFastFieldSerializer::from_write(write).unwrap();
430430
let mut fast_field_writers = FastFieldsWriter::from_schema(&schema);
431-
for block in &multi_values(num_docs, 1) {
431+
for block in &multi_values(num_docs, 3) {
432432
let mut doc = Document::new();
433433
for val in block {
434434
doc.add_u64(field, *val);
@@ -469,4 +469,34 @@ mod bench {
469469
});
470470
}
471471
}
472+
473+
#[bench]
474+
fn bench_multi_value_ff_creation(b: &mut Bencher) {
475+
// 3 million ff entries
476+
let num_docs = 1_000_000;
477+
let multi_values = multi_values(num_docs, 3);
478+
479+
b.iter(|| {
480+
let directory: RamDirectory = RamDirectory::create();
481+
let options = NumericOptions::default().set_fast(Cardinality::MultiValues);
482+
let mut schema_builder = Schema::builder();
483+
let field = schema_builder.add_u64_field("field", options);
484+
let schema = schema_builder.build();
485+
486+
let write: WritePtr = directory.open_write(Path::new("test")).unwrap();
487+
let mut serializer = CompositeFastFieldSerializer::from_write(write).unwrap();
488+
let mut fast_field_writers = FastFieldsWriter::from_schema(&schema);
489+
for block in &multi_values {
490+
let mut doc = Document::new();
491+
for val in block {
492+
doc.add_u64(field, *val);
493+
}
494+
fast_field_writers.add_document(&doc);
495+
}
496+
fast_field_writers
497+
.serialize(&mut serializer, &HashMap::new(), None)
498+
.unwrap();
499+
serializer.close().unwrap();
500+
});
501+
}
472502
}

0 commit comments

Comments
 (0)