From 39736cc0b9bca9c99f88e203497905e658768406 Mon Sep 17 00:00:00 2001 From: Mike Dilger Date: Tue, 20 Feb 2024 07:30:22 +1300 Subject: [PATCH] Use ci index to return scraper results in reverse chronological order, and limit them --- src/store/mod.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/store/mod.rs b/src/store/mod.rs index 6b2424b..73422ad 100644 --- a/src/store/mod.rs +++ b/src/store/mod.rs @@ -99,7 +99,6 @@ impl Store { txn.commit()?; let event_map_file = format!("{}/event.map", data_directory); - let events = EventStore::new(event_map_file)?; let store = Store { @@ -378,13 +377,18 @@ impl Store { // This is INEFFICIENT as it scans through EVERY EVENT // but the filter is a scraper and we don't have a lot of support // for scrapers. + let mut count = 0; let txn = self.env.read_txn()?; - let iter = self.ids.iter(&txn)?; + let iter = self.ci.iter(&txn)?; for result in iter { let (_key, offset) = result?; if let Some(event) = self.events.get_event_by_offset(offset)? { if filter.event_matches(&event)? { output.push(event); + count += 1; + if count >= filter.limit() { + break; + } } } }