From 3756f5a0ca055287609cbc4d982663943a19c3bb Mon Sep 17 00:00:00 2001 From: John Braun Date: Fri, 8 Oct 2021 15:07:45 +0200 Subject: [PATCH] Add test for highlighting numbers --- meilisearch-lib/src/index/search.rs | 89 +++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) diff --git a/meilisearch-lib/src/index/search.rs b/meilisearch-lib/src/index/search.rs index 25771a5d4..7655c2dfb 100644 --- a/meilisearch-lib/src/index/search.rs +++ b/meilisearch-lib/src/index/search.rs @@ -793,6 +793,95 @@ mod test { assert_eq!(value["author"], "J. R. R. Tolkien"); } + #[test] + fn formatted_with_highlight_in_number() { + let stop_words = fst::Set::default(); + let mut config = AnalyzerConfig::default(); + config.stop_words(&stop_words); + let analyzer = Analyzer::new(config); + let formatter = Formatter::new(&analyzer, (String::from(""), String::from(""))); + + let mut fields = FieldsIdsMap::new(); + let title = fields.insert("title").unwrap(); + let author = fields.insert("author").unwrap(); + let publication_year = fields.insert("publication_year").unwrap(); + + + let mut buf = Vec::new(); + let mut obkv = obkv::KvWriter::new(&mut buf); + + obkv.insert( + title, + Value::String("The Hobbit".into()).to_string().as_bytes(), + ) + .unwrap(); + + obkv.finish().unwrap(); + obkv = obkv::KvWriter::new(&mut buf); + + obkv.insert( + author, + Value::String("J. R. R. Tolkien".into()) + .to_string() + .as_bytes(), + ) + .unwrap(); + obkv.finish().unwrap(); + + obkv = obkv::KvWriter::new(&mut buf); + + obkv.insert( + publication_year, + Value::Number(1937.into()) + .to_string() + .as_bytes(), + ) + .unwrap(); + + obkv.finish().unwrap(); + + let obkv = obkv::KvReader::new(&buf); + + let mut formatted_options = BTreeMap::new(); + formatted_options.insert( + title, + FormatOptions { + highlight: false, + crop: None, + }, + ); + formatted_options.insert( + author, + FormatOptions { + highlight: false, + crop: None, + }, + ); + formatted_options.insert( + publication_year, + FormatOptions { + highlight: true, + crop: None, + }, + ); + + let mut matching_words = BTreeMap::new(); + matching_words.insert("1937", Some(4)); + + let value = format_fields( + &fields, + obkv, + &formatter, + &matching_words, + &formatted_options, + ) + .unwrap(); + + assert_eq!(value["title"], "The Hobbit"); + assert_eq!(value["author"], "J. R. R. Tolkien"); + assert_eq!(value["publication_year"], "1937"); + } + /// https://github.com/meilisearch/MeiliSearch/issues/1368 #[test] fn formatted_with_highlight_emoji() {