diff --git a/meilisearch-lib/src/index/search.rs b/meilisearch-lib/src/index/search.rs
index 4521d3ed0..dbd39f458 100644
--- a/meilisearch-lib/src/index/search.rs
+++ b/meilisearch-lib/src/index/search.rs
@@ -554,6 +554,11 @@ impl<'a, A: AsRef<[u8]>> Formatter<'a, A> {
})
.collect(),
),
+ Value::Number(number) => {
+ let number_string_value =
+ self.format_string(number.to_string(), matcher, format_options);
+ Value::String(number_string_value)
+ }
value => value,
}
}
@@ -788,6 +793,92 @@ 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() {