diff --git a/src/applications/search/compiler/PhutilSearchQueryCompiler.php b/src/applications/search/compiler/PhutilSearchQueryCompiler.php --- a/src/applications/search/compiler/PhutilSearchQueryCompiler.php +++ b/src/applications/search/compiler/PhutilSearchQueryCompiler.php @@ -147,6 +147,11 @@ new PhutilNumber($query_bytes), new PhutilNumber($maximum_bytes))); } + // Remove duplicate tokens but keep quoted tokens intact + $query = preg_split('/("[^"]*")|\h+/', $query, -1, + PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE); + $query = array_unique($query); + $query = implode(' ', $query); $query = phutil_utf8v($query); $length = count($query);