laurus 0.4.0

Unified search library for lexical, vector, and semantic retrieval
// 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+)? }