update Filter::searchQuery method

This commit is contained in:
ghost 2023-08-01 17:20:42 +03:00
parent cc0cca346b
commit 48e0482dbd

View File

@ -91,8 +91,18 @@ class Filter {
$query = trim($query); $query = trim($query);
// Quote reserved keyword operators // Return short or empty queries
if (mb_strlen($query) <= 1) {
return false;
}
// Lowercase query to deactivate reserved operators
$query = mb_strtolower($query);
// Quote other operators
$operators = [ $operators = [
/* lowercased
'MAYBE', 'MAYBE',
'AND', 'AND',
'OR', 'OR',
@ -102,8 +112,8 @@ class Filter {
'ZONE', 'ZONE',
'ZONESPAN', 'ZONESPAN',
'PARAGRAPH', 'PARAGRAPH',
*/
'\\', '/', '~', '@', '!', '"', '(', ')', '[', ']', '|', '?', '%', '-', '>', '<', ':', ';', '^', '$' '\\', '/', '~', '@', '!', '"', "'", '(', ')', '[', ']', '|', '?', '%', '-', '>', '<', ':', ';', '^', '$'
]; ];
foreach ($operators as $operator) { foreach ($operators as $operator) {
@ -131,13 +141,13 @@ class Filter {
if (mb_strlen($word) > 1) { if (mb_strlen($word) > 1) {
$words[] = sprintf('%s*', $word); $words[] = sprintf('(%s*)', $word);
} }
} }
$query = sprintf('@title %s | "%s" | %s', $query, $query = sprintf('@title %s | "%s" | (%s)', $query,
$crc32query, $crc32query,
implode(' | ', $words)); implode(' | ', $words));
} }
} }