From fedd9559e75d673d59f9e3d51cf535d88f901977 Mon Sep 17 00:00:00 2001 From: Adam Reichold Date: Thu, 11 May 2023 14:53:18 +0200 Subject: [PATCH] Expose create a query from a user input AST. (#2039) --- src/query/query_parser/query_parser.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/query/query_parser/query_parser.rs b/src/query/query_parser/query_parser.rs index 47dc21390..70f88904e 100644 --- a/src/query/query_parser/query_parser.rs +++ b/src/query/query_parser/query_parser.rs @@ -314,6 +314,19 @@ impl QueryParser { Ok(convert_to_query(&self.fuzzy, logical_ast)) } + /// Build a query from an already parsed user input AST + /// + /// This can be useful if the user input AST parsed using [`query_grammar`] + /// needs to be inspected before the query is re-interpreted w.r.t. + /// index specifics like field names and tokenizers. + pub fn build_query_from_user_input_ast( + &self, + user_input_ast: UserInputAst, + ) -> Result, QueryParserError> { + let logical_ast = self.compute_logical_ast(user_input_ast)?; + Ok(convert_to_query(&self.fuzzy, logical_ast)) + } + /// Parse the user query into an AST. fn parse_query_to_logical_ast(&self, query: &str) -> Result { let user_input_ast = query_grammar::parse_query(query)