diff --git a/grammar/query.pp b/grammar/query.pp index a4ef731ea4..9511c417fe 100644 --- a/grammar/query.pp +++ b/grammar/query.pp @@ -30,9 +30,9 @@ %token collection collection %token type type %token id id|recordid -%token field_prefix field. -%token flag_prefix flag. -%token meta_prefix meta. +%token field_prefix field\. +%token flag_prefix flag\. +%token meta_prefix meta\. %token true true|1 %token false false|0 %token word [^\s\(\)\[\]:<>≤≥=]+ diff --git a/tests/Alchemy/Tests/Phrasea/SearchEngine/resources/queries.csv b/tests/Alchemy/Tests/Phrasea/SearchEngine/resources/queries.csv index ff207a8f82..b29461a7c2 100644 --- a/tests/Alchemy/Tests/Phrasea/SearchEngine/resources/queries.csv +++ b/tests/Alchemy/Tests/Phrasea/SearchEngine/resources/queries.csv @@ -105,6 +105,11 @@ true| # Metadata (EXIF or anything else) matcher meta.MimeType:image/jpeg| +# Unescaped "." issue on key prefixes +fieldOne:foo|( MATCHES ) +flagged:true|( MATCHES ) +metadata:foo|( MATCHES ) + # Matcher on unknown name --> fulltext foo:bar|( MATCHES ) foo:bar AND baz|(( MATCHES ) AND )