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); } }