Simplify the logger

This commit is contained in:
Loïc Lecrenier
2023-04-06 16:24:44 +02:00
parent 7ab48ed8c7
commit 96183e804a
9 changed files with 38 additions and 205 deletions

View File

@ -1,11 +1,10 @@
use heed::BytesDecode;
use roaring::RoaringBitmap;
use super::{ComputedCondition, DeadEndsCache, RankingRuleGraph, RankingRuleGraphTrait};
use crate::search::new::interner::{DedupInterner, Interned, MappedInterner};
use crate::search::new::query_graph::{QueryGraph, QueryNode};
use super::{ComputedCondition, RankingRuleGraphTrait};
use crate::search::new::interner::{DedupInterner, Interned};
use crate::search::new::query_term::{ExactTerm, LocatedQueryTermSubset};
use crate::{Result, RoaringBitmapCodec, SearchContext, SearchLogger};
use crate::{Result, RoaringBitmapCodec, SearchContext};
#[derive(Clone, PartialEq, Eq, Hash)]
pub enum ExactnessCondition {
@ -77,26 +76,4 @@ impl RankingRuleGraphTrait for ExactnessGraph {
Ok(vec![(0, exact_condition), (dest_node.term_ids.len() as u32, skip_condition)])
}
fn log_state(
_graph: &RankingRuleGraph<Self>,
_paths: &[Vec<Interned<Self::Condition>>],
_dead_ends_cache: &DeadEndsCache<Self::Condition>,
_niverse: &RoaringBitmap,
_costs: &MappedInterner<QueryNode, Vec<u64>>,
_cost: u64,
_logger: &mut dyn SearchLogger<QueryGraph>,
) {
}
fn label_for_condition(
_ctx: &mut SearchContext,
condition: &Self::Condition,
) -> Result<String> {
Ok(match condition {
ExactnessCondition::ExactInAttribute(_) => "exact",
ExactnessCondition::Skip(_) => "skip",
}
.to_owned())
}
}

View File

@ -28,7 +28,6 @@ use roaring::RoaringBitmap;
pub use typo::{TypoCondition, TypoGraph};
use super::interner::{DedupInterner, FixedSizeInterner, Interned, MappedInterner};
use super::logger::SearchLogger;
use super::query_term::LocatedQueryTermSubset;
use super::small_bitmap::SmallBitmap;
use super::{QueryGraph, QueryNode, SearchContext};
@ -86,10 +85,6 @@ impl<E> PartialEq for Edge<E> {
pub trait RankingRuleGraphTrait: Sized {
type Condition: Sized + Clone + PartialEq + Eq + Hash;
/// Return the label of the given edge condition, to be used when visualising
/// the ranking rule graph.
fn label_for_condition(ctx: &mut SearchContext, condition: &Self::Condition) -> Result<String>;
/// Compute the document ids associated with the given edge condition,
/// restricted to the given universe.
fn resolve_condition(
@ -105,16 +100,6 @@ pub trait RankingRuleGraphTrait: Sized {
source_node: Option<&LocatedQueryTermSubset>,
dest_node: &LocatedQueryTermSubset,
) -> Result<Vec<(u32, Interned<Self::Condition>)>>;
fn log_state(
graph: &RankingRuleGraph<Self>,
paths: &[Vec<Interned<Self::Condition>>],
dead_ends_cache: &DeadEndsCache<Self::Condition>,
universe: &RoaringBitmap,
costs: &MappedInterner<QueryNode, Vec<u64>>,
cost: u64,
logger: &mut dyn SearchLogger<QueryGraph>,
);
}
/// The graph used by graph-based ranking rules.

View File

@ -3,11 +3,10 @@ pub mod compute_docids;
use roaring::RoaringBitmap;
use super::{ComputedCondition, DeadEndsCache, RankingRuleGraph, RankingRuleGraphTrait};
use crate::search::new::interner::{DedupInterner, Interned, MappedInterner};
use crate::search::new::logger::SearchLogger;
use super::{ComputedCondition, RankingRuleGraphTrait};
use crate::search::new::interner::{DedupInterner, Interned};
use crate::search::new::query_term::LocatedQueryTermSubset;
use crate::search::new::{QueryGraph, QueryNode, SearchContext};
use crate::search::new::SearchContext;
use crate::Result;
#[derive(Clone, PartialEq, Eq, Hash)]
@ -37,28 +36,4 @@ impl RankingRuleGraphTrait for ProximityGraph {
) -> Result<Vec<(u32, Interned<Self::Condition>)>> {
build::build_edges(ctx, conditions_interner, source_term, dest_term)
}
fn log_state(
graph: &RankingRuleGraph<Self>,
paths: &[Vec<Interned<ProximityCondition>>],
dead_ends_cache: &DeadEndsCache<Self::Condition>,
universe: &RoaringBitmap,
distances: &MappedInterner<QueryNode, Vec<u64>>,
cost: u64,
logger: &mut dyn SearchLogger<QueryGraph>,
) {
logger.log_proximity_state(graph, paths, dead_ends_cache, universe, distances, cost);
}
fn label_for_condition(ctx: &mut SearchContext, condition: &Self::Condition) -> Result<String> {
match condition {
ProximityCondition::Uninit { cost, .. } => {
// TODO
Ok(format!("{cost}: cost"))
}
ProximityCondition::Term { term } => {
Ok(format!("{} : exists", term.term_subset.description(ctx)))
}
}
}
}

View File

@ -1,11 +1,10 @@
use roaring::RoaringBitmap;
use super::{ComputedCondition, DeadEndsCache, RankingRuleGraph, RankingRuleGraphTrait};
use crate::search::new::interner::{DedupInterner, Interned, MappedInterner};
use crate::search::new::logger::SearchLogger;
use super::{ComputedCondition, RankingRuleGraphTrait};
use crate::search::new::interner::{DedupInterner, Interned};
use crate::search::new::query_term::LocatedQueryTermSubset;
use crate::search::new::resolve_query_graph::compute_query_term_subset_docids;
use crate::search::new::{QueryGraph, QueryNode, SearchContext};
use crate::search::new::SearchContext;
use crate::Result;
#[derive(Clone, PartialEq, Eq, Hash)]
@ -76,21 +75,4 @@ impl RankingRuleGraphTrait for TypoGraph {
}
Ok(edges)
}
fn log_state(
graph: &RankingRuleGraph<Self>,
paths: &[Vec<Interned<TypoCondition>>],
dead_ends_cache: &DeadEndsCache<TypoCondition>,
universe: &RoaringBitmap,
distances: &MappedInterner<QueryNode, Vec<u64>>,
cost: u64,
logger: &mut dyn SearchLogger<QueryGraph>,
) {
logger.log_typo_state(graph, paths, dead_ends_cache, universe, distances, cost);
}
fn label_for_condition(ctx: &mut SearchContext, condition: &Self::Condition) -> Result<String> {
let TypoCondition { term, nbr_typos } = condition;
Ok(format!("{}: {nbr_typos}", term.term_subset.description(ctx)))
}
}