public function testQuerySupportsMultiWordNegationOperatorSearchWithQuotesWeights() { $q = new Doctrine_Search_Query('SearchTestIndex'); $q->search("doctrine^2 'dbal database' -rdbms"); $sql = "SELECT foreign_id, SUM(relevancy) AS relevancy_sum FROM\n (SELECT COUNT(keyword) * 2 AS relevancy, foreign_id\n FROM search_index\n WHERE keyword = 'doctrine'\n GROUP BY foreign_id\n INTERSECT\n SELECT COUNT(keyword) AS relevancy, foreign_id\n FROM search_index) AS query_alias\n WHERE keyword = 'dbal' AND (position + 1) = (SELECT position FROM search_index WHERE keyword = 'database')\n GROUP BY foreign_id\n EXCEPT\n SELECT COUNT(keyword) AS relevancy, foreign_id\n FROM search_index) AS query_alias\n WHERE keyword != 'rdbms'\n GROUP BY foreign_id \n )\n GROUP BY foreign_id\n ORDER BY relevancy_sum"; $this->assertEqual($q->getSqlQuery(), $sql); }