From 24fdba2d2622440e2128bef08d01f22d19743f1a Mon Sep 17 00:00:00 2001 From: Dominik Pfennig <dominik@suma-ev.de> Date: Wed, 15 Feb 2017 10:11:02 +0100 Subject: [PATCH] Yandex Filter eingebaut --- app/Models/Result.php | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/app/Models/Result.php b/app/Models/Result.php index fe79f4004..874c6674b 100644 --- a/app/Models/Result.php +++ b/app/Models/Result.php @@ -87,9 +87,47 @@ class Result $rank *= floatval($this->engineBoost); } + # Runter Ranken von Yandex Ergebnissen mit zu viel kyrillischen Texten + if (stripos($this->gefVon, "yandex") !== false) { + $rank -= $this->calcYandexBoost($eingabe); + } + $this->rank = $rank; } + # Berechnet, ob dieses Suchergebnis einen Malus erhalten soll, oder nicht + # Ãœbergeben werden alle Yandex Ergebnisse + # Wenn die Suchworte kein kyrillisches Zeichen enthalten, wird das Ergebnis schlechter bewertet, + # falls es selbst zu viele kyrillische Zeichen enthält + private function calcYandexBoost($tmpEingabe) + { + $maxRatio = 0.1; # Gibt den Prozentsatz von Kyrillischen Zeichen in Titel und Beschreibung an, ab dem das Ergebnis runter gerankt werden soll + if (preg_match('/[Ð-Яа-ÑÐÑ‘]/u', $tmpEingabe) === 1) { + # Das Suchwort enthält kyrillische Zeichen, also dürfen es auch die Ergebnisse + return 0; + } else { + # Wir überprüfen das Verhältnis von Kyrillischen Zeichen im Titel + if (preg_match_all('/[Ð-Яа-ÑÐÑ‘]/u', $this->titel, $matches)) { + $count = sizeof($matches[0]); + $titleSize = strlen($this->titel); + $percKyr = $count / $titleSize; + if ($percKyr > $maxRatio) { + return 5; + } + } + # Wir überprüfen das Verhältnis von Kyrillischen Zeichen in der Beschreibung + if (preg_match_all('/[Ð-Яа-ÑÐÑ‘]/u', $this->descr, $matches)) { + $count = sizeof($matches[0]); + $descrSize = strlen($this->descr); + $percKyr = $count / $descrSize; + if ($percKyr > $maxRatio) { + return 5; + } + } + } + return 0; + } + # Berechnet den Ranking-Boost durch ??? URL public function calcURLBoost($tmpEingabe) { -- GitLab