CyborgDB supports metadata tagging and filtering, enabling fine-grained search filters in addition to encrypted vector search. Metadata, like vectors, are end-to-end encrypted and never exposed in plaintext outside of the client.
By default, all metadata fields are indexed using encrypted indexing, so filters on indexed fields resolve directly from the index and filtered queries stay fast. Filters on fields declared filterable: False in the index’s metadata_schema, and $regex / $contains on fields not declared pattern: True, are instead evaluated on decrypted metadata after retrieval, which is slower.
$regex and $contains patterns are evaluated by RE2, matched unanchored — the same convention as MongoDB’s $regex. Anchor with ^ and $ explicitly if you need a full-string match.RE2 is linear-time and safe against catastrophic-backtracking patterns, but accepts a narrower syntax than PCRE / ECMAScript regex. In particular:
Lookahead and lookbehind ((?=…), (?!…), (?<=…), (?<!…)) are unsupported.
Backreferences (\1, \2, …) are unsupported.
Malformed patterns (e.g. unbalanced groups) raise a validation error.
Any of the above raises ValueError at query time — patterns are rejected up front rather than at match time, so a bad pattern fails fast.