From 2de636247958a3bd961d643cf7a909fdf67af21f Mon Sep 17 00:00:00 2001 From: Paul Masurel Date: Sat, 27 Feb 2016 12:29:37 +0900 Subject: [PATCH] added todo --- TODO.md | 9 ++++++++- src/core/postings.rs | 36 +++++++++++++++++++++++++++++++++++- 2 files changed, 43 insertions(+), 2 deletions(-) diff --git a/TODO.md b/TODO.md index 2e38d0f01..905f82918 100644 --- a/TODO.md +++ b/TODO.md @@ -1,2 +1,9 @@ error management -put store out of the +split directory +add doc values +implement serial for segment reader +merge segments +documentation +split postings into blocks +add term frequency +use skip list for each blocks diff --git a/src/core/postings.rs b/src/core/postings.rs index 76f4b3204..3a01e592e 100644 --- a/src/core/postings.rs +++ b/src/core/postings.rs @@ -79,7 +79,6 @@ impl IntersectionPostings { postings: postings, } } - } impl Iterator for IntersectionPostings { @@ -163,3 +162,38 @@ mod tests { }); } } + + + +#[cfg(test)] +mod tests { + + + use super::*; + use test::Bencher; + use rand::Rng; + use rand::SeedableRng; + use rand::StdRng; + + fn generate_array(n: usize, ratio: f32) -> Vec { + let seed: &[_] = &[1, 2, 3, 4]; + let mut rng: StdRng = SeedableRng::from_seed(seed); + (0..u32::max_value()) + .filter(|_| rng.next_f32()< ratio) + .take(n) + .collect() + } + + #[bench] + fn bench_intersection(b: &mut Bencher) { + const TEST_SIZE: usize = 100_000; + let arr = generate_array(TEST_SIZE, 0.1); + let mut encoder = Encoder::new(); + let encoded = encoder.encode(&arr); + let mut uncompressed: Vec = (0..TEST_SIZE as u32).collect(); + let decoder = Decoder; + b.iter(|| { + decoder.decode(&encoded, &mut uncompressed); + }); + } +}