// Vector query DSL grammar.
//
// Supports: field:~"text"^weight syntax for vector similarity search.
WHITESPACE = _{ " " | "\t" | "\n" | "\r" }
query = { SOI ~ vector_clause+ ~ EOI }
vector_clause = { field_prefix? ~ "~" ~ quoted_text ~ boost? }
field_prefix = { field_name ~ ":" }
field_name = @{ (ASCII_ALPHA | "_") ~ (ASCII_ALPHANUMERIC | "_" | ".")* }
quoted_text = ${ "\"" ~ inner_text ~ "\"" }
inner_text = @{ (!("\"") ~ ANY)* }
boost = { "^" ~ float_value }
float_value = @{ ASCII_DIGIT+ ~ ("." ~ ASCII_DIGIT+)? }