diff --git a/src/query/bm25.rs b/src/query/bm25.rs index 0bb1b4f08..d4371237c 100644 --- a/src/query/bm25.rs +++ b/src/query/bm25.rs @@ -106,7 +106,7 @@ impl BM25Weight { BM25Weight::new(idf_explain, avg_fieldnorm) } - fn new(idf_explain: Explanation, average_fieldnorm: Score) -> BM25Weight { + pub(crate) fn new(idf_explain: Explanation, average_fieldnorm: Score) -> BM25Weight { let weight = idf_explain.value() * (1.0 + K1); BM25Weight { idf_explain, diff --git a/src/query/term_query/term_query.rs b/src/query/term_query/term_query.rs index 260170dff..9cb0bd457 100644 --- a/src/query/term_query/term_query.rs +++ b/src/query/term_query/term_query.rs @@ -1,7 +1,7 @@ use super::term_weight::TermWeight; use crate::query::bm25::BM25Weight; -use crate::query::Query; use crate::query::Weight; +use crate::query::{Explanation, Query}; use crate::schema::IndexRecordOption; use crate::Searcher; use crate::Term; @@ -100,7 +100,13 @@ impl TermQuery { field_entry.name() ))); } - let bm25_weight = BM25Weight::for_terms(searcher, &[term])?; + let bm25_weight; + if scoring_enabled { + bm25_weight = BM25Weight::for_terms(searcher, &[term])?; + } else { + bm25_weight = + BM25Weight::new(Explanation::new("".to_string(), 1.0f32), 1.0f32); + } let index_record_option = if scoring_enabled { self.index_record_option } else {