From 13560440cced730e29e8b03b491abd1f6bcc1c04 Mon Sep 17 00:00:00 2001 From: Dominik Pfennig <dominik@suma-ev.de> Date: Thu, 28 Jul 2016 08:39:37 +0200 Subject: [PATCH] =?UTF-8?q?Phrasensuche=20schlie=C3=9Ft=20wieder=20fehlerh?= =?UTF-8?q?afte=20Ergebnisse=20aus?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/MetaGer.php | 19 +++++++++++++++++-- app/Models/Result.php | 8 ++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/app/MetaGer.php b/app/MetaGer.php index 8a76b4387..eb38412bb 100644 --- a/app/MetaGer.php +++ b/app/MetaGer.php @@ -696,9 +696,19 @@ class MetaGer } # Meldung über eine Phrasensuche - if(preg_match("/\"(.+)\"/si", $this->q, $match)){ - $this->warnings[] = "Sie führen eine Phrasensuche durch: \"" . $match[1] . "\""; + $p = ""; + $tmp = $this->q; + while(preg_match("/(.*)\"(.+)\"(.*)/si", $tmp, $match)){ + $tmp = $match[1] . $match[3]; + $this->phrases[] = strtolower($match[2]); } + foreach($this->phrases as $phrase) + { + $p .= "\"$phrase\", "; + } + $p = rtrim($p, ", "); + if(sizeof($this->phrases) > 0) + $this->warnings[] = "Sie führen eine Phrasensuche durch: $p"; } public function getFokus () @@ -750,6 +760,11 @@ class MetaGer return $this->category; } + public function getPhrases () + { + return $this->phrases; + } + public function getSumaFile () { return $this->sumaFile; diff --git a/app/Models/Result.php b/app/Models/Result.php index 3845196e9..275a54889 100644 --- a/app/Models/Result.php +++ b/app/Models/Result.php @@ -180,6 +180,14 @@ class Result } } + # Die Strinsuche: + $text = strtolower($this->titel) . " " . strtolower($this->descr); + foreach($metager->getPhrases() as $phrase) + { + if(strpos($text, $phrase) === FALSE) + return false; + } + # Abschließend noch 2 Überprüfungen. Einmal den Host filter, der Sicherstellt, dass von jedem Host maximal 3 Links angezeigt werden # und dann noch den Dublettefilter, der sicher stellt, dass wir nach Möglichkeit keinen Link doppelt in der Ergebnisliste haben # Diese Überprüfung führen wir unter bestimmten Bedingungen nicht durch: -- GitLab