diff --git a/columnar/benches/bench_access.rs b/columnar/benches/bench_access.rs index debeb5f7b4..571d949ec8 100644 --- a/columnar/benches/bench_access.rs +++ b/columnar/benches/bench_access.rs @@ -4,7 +4,7 @@ use std::fmt::{Display, Formatter}; use binggan::{black_box, InputGroup}; use tantivy_columnar::*; -enum Card { +pub enum Card { MultiSparse, Multi, Sparse, @@ -25,7 +25,7 @@ impl Display for Card { const NUM_DOCS: u32 = 2_000_000; -fn generate_columnar(card: Card, num_docs: u32) -> Column { +pub fn generate_columnar(card: Card, num_docs: u32) -> ColumnarReader { use tantivy_columnar::ColumnarWriter; let mut columnar_writer = ColumnarWriter::default(); @@ -62,18 +62,26 @@ fn generate_columnar(card: Card, num_docs: u32) -> Column { let mut wrt: Vec = Vec::new(); columnar_writer.serialize(num_docs, &mut wrt).unwrap(); - let reader = ColumnarReader::open(wrt).unwrap(); + reader +} + +pub fn generate_columnar_and_open(card: Card, num_docs: u32) -> Column { + let reader = generate_columnar(card, num_docs); reader.read_columns("price").unwrap()[0] .open_u64_lenient() .unwrap() .unwrap() } + fn main() { let mut inputs = Vec::new(); let mut add_card = |card1: Card| { - inputs.push((format!("{card1}"), generate_columnar(card1, NUM_DOCS))); + inputs.push(( + format!("{card1}"), + generate_columnar_and_open(card1, NUM_DOCS), + )); }; add_card(Card::MultiSparse); diff --git a/columnar/benches/bench_merge.rs b/columnar/benches/bench_merge.rs index 7f67bcba2b..b30efd43ad 100644 --- a/columnar/benches/bench_merge.rs +++ b/columnar/benches/bench_merge.rs @@ -1,59 +1,11 @@ -use core::fmt; -use std::fmt::{Display, Formatter}; +mod bench_access; +use bench_access::{generate_columnar, Card}; use binggan::{black_box, BenchRunner}; use tantivy_columnar::*; -enum Card { - Multi, - Sparse, - Dense, -} -impl Display for Card { - fn fmt(&self, f: &mut Formatter) -> fmt::Result { - match self { - Card::Multi => write!(f, "multi"), - Card::Sparse => write!(f, "sparse"), - Card::Dense => write!(f, "dense"), - } - } -} - const NUM_DOCS: u32 = 100_000; -fn generate_columnar(card: Card, num_docs: u32) -> ColumnarReader { - use tantivy_columnar::ColumnarWriter; - - let mut columnar_writer = ColumnarWriter::default(); - - match card { - Card::Multi => { - columnar_writer.record_numerical(0, "price", 10u64); - columnar_writer.record_numerical(0, "price", 10u64); - } - _ => {} - } - - for i in 0..num_docs { - match card { - Card::Multi | Card::Sparse => { - if i % 13 == 0 { - columnar_writer.record_numerical(i, "price", i as u64); - } - } - Card::Dense => { - if i % 12 == 0 { - columnar_writer.record_numerical(i, "price", i as u64); - } - } - } - } - - let mut wrt: Vec = Vec::new(); - columnar_writer.serialize(num_docs, &mut wrt).unwrap(); - - ColumnarReader::open(wrt).unwrap() -} fn main() { let mut inputs = Vec::new(); @@ -68,9 +20,12 @@ fn main() { }; add_combo(Card::Multi, Card::Multi); + add_combo(Card::MultiSparse, Card::MultiSparse); add_combo(Card::Dense, Card::Dense); add_combo(Card::Sparse, Card::Sparse); add_combo(Card::Sparse, Card::Dense); + add_combo(Card::MultiSparse, Card::Dense); + add_combo(Card::MultiSparse, Card::Sparse); add_combo(Card::Multi, Card::Dense); add_combo(Card::Multi, Card::Sparse); diff --git a/columnar/src/compat_tests.rs b/columnar/src/compat_tests.rs index 52950fe154..cbb11333ec 100644 --- a/columnar/src/compat_tests.rs +++ b/columnar/src/compat_tests.rs @@ -22,7 +22,7 @@ fn generate_columnar(num_docs: u32) -> Vec { } let mut wrt: Vec = Vec::new(); - columnar_writer.serialize(num_docs, None, &mut wrt).unwrap(); + columnar_writer.serialize(num_docs, &mut wrt).unwrap(); wrt }