diff --git a/src/query/regex_query.rs b/src/query/regex_query.rs index 50527980a..815832d31 100644 --- a/src/query/regex_query.rs +++ b/src/query/regex_query.rs @@ -63,7 +63,7 @@ impl RegexQuery { /// Creates a new RegexQuery from a given pattern pub fn from_pattern(regex_pattern: &str, field: Field) -> crate::Result { let regex = Regex::new(regex_pattern) - .map_err(|_| TantivyError::InvalidArgument(regex_pattern.to_string()))?; + .map_err(|err| TantivyError::InvalidArgument(format!("RegexQueryError: {err}")))?; Ok(RegexQuery::from_regex(regex, field)) } @@ -176,4 +176,16 @@ mod test { verify_regex_query(matching_one, matching_zero, reader); Ok(()) } + + #[test] + pub fn test_pattern_error() { + let (_reader, field) = build_test_index().unwrap(); + + match RegexQuery::from_pattern(r"(foo", field) { + Err(crate::TantivyError::InvalidArgument(msg)) => { + assert!(msg.contains("error: unclosed group")) + } + res => panic!("unexpected result: {:?}", res), + } + } }