diff --git a/app/MetaGer.php b/app/MetaGer.php
index 3730cf814275760142ac9ac63752b4fecc58607e..e72535d37daa19b44674992cfe11acc8d53d32cb 100644
--- a/app/MetaGer.php
+++ b/app/MetaGer.php
@@ -1098,7 +1098,7 @@ class MetaGer
         // matches '[... ]"test satz"[ ...]'
         while (preg_match("/(^|.+\s)\"(.+)\"(?:\s(.+)|($))/si", $tmp, $match)) {
             $tmp             = $match[1] . $match[3];
-            $this->phrases[] = strtolower($match[2]);
+            $this->phrases[] = $match[2];
         }
         foreach ($this->phrases as $phrase) {
             $p .= "\"$phrase\", ";
@@ -1133,8 +1133,16 @@ class MetaGer
 
     public function rankAll()
     {
-        foreach ($this->engines as $engine) {
-            $engine->rank($this->getQ());
+        $phraseSearch = sizeof($this->getPhrases()) > 0 ? true : false;
+
+        if($phraseSearch) {
+            foreach ($this->engines as $engine) {
+                $engine->rank($this->getQ(), $this->getPhrases());
+            }
+        } else {
+            foreach ($this->engines as $engine) {
+                $engine->rank($this->getQ());
+            }
         }
     }
 
diff --git a/app/Models/Result.php b/app/Models/Result.php
index c60bf62f3178fac5ac4b24b5b35d06e0c634040a..f96a01b3a9a9b08291dd1452d8c997ea27fd23de 100644
--- a/app/Models/Result.php
+++ b/app/Models/Result.php
@@ -72,8 +72,9 @@ class Result
      *  + 0.02 * Sourcerank (20 - Position in Ergebnisliste des Suchanbieters)
      *  * Engine-Boost
      */
-    public function rank($eingabe)
-    {
+    public function rank($eingabe, $phrases = [])
+    { 
+
         $rank = 0;
 
         # Boost für Source Ranking
@@ -95,6 +96,10 @@ class Result
             $rank -= $this->calcYandexBoost($eingabe);
         }
 
+        if(!empty($phrases)) {
+            $rank += $this->calcPhraseSearchBoost($phrases);
+        }
+
         $this->rank = $rank;
     }
 
@@ -131,6 +136,17 @@ class Result
         return 0;
     }
 
+    private function calcPhraseSearchBoost($phrases) {
+
+        $containsPhrase = true;
+        foreach($phrases as $phrase) {
+            if(strstr($this->longDescr, $phrase) == false) {
+                $containsPhrase = false;
+            }
+        }
+        return $containsPhrase ? 1 : 0;
+    }
+
     # Berechnet den Ranking-Boost durch ??? URL
     public function calcURLBoost($tmpEingabe)
     {
diff --git a/app/Models/Searchengine.php b/app/Models/Searchengine.php
index cc98b6b6e48305e3f4e2f83563a9aa0b5aa23923..45f66503b4ad0f4b60fdbff113a9ef323b15ebc1 100644
--- a/app/Models/Searchengine.php
+++ b/app/Models/Searchengine.php
@@ -166,10 +166,10 @@ abstract class Searchengine
     }
 
     # Ruft die Ranking-Funktion aller Ergebnisse auf.
-    public function rank($eingabe)
+    public function rank($eingabe, $phrases = [])
     {
         foreach ($this->results as $result) {
-            $result->rank($eingabe);
+            $result->rank($eingabe, $phrases);
         }
     }