Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • MetaGer MetaGer
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 46
    • Issues 46
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 9
    • Merge requests 9
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • Repository
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • open-source
  • MetaGerMetaGer
  • Wiki
  • wie funktioniert metager

wie funktioniert metager · Changes

Page history
Update wie funktioniert metager authored May 29, 2017 by Aria Givi's avatar Aria Givi
Hide whitespace changes
Inline Side-by-side
wie-funktioniert-metager.md
View page @ 034123f0
MetaGer basiert auf dem PHP-Framework [Laravel](https://www.laravel.com/)
Im folgenden wird der Weg einer Suchanfrage von Eingang des HTTP-Requests bis zum Zurücksenden der Ergebnisseite beschrieben, um eine kurze Einführung zu geben.
Dabei kratze ich nur an der Oberfläche des Frameworks selbst. Für eine genaue Dokumentation besuche [https://www.laravel.com/docs/5.2 ](https://www.laravel.com/docs/5.2 )
Dabei kratze ich nur an der Oberfläche des Frameworks selbst. Für eine genaue Dokumentation besuche [https://www.laravel.com/docs/5.4 ](https://www.laravel.com/docs/5.4 )
Dies soll einen generellen Überblick über die Struktur geben und erhebt keinen Anspruch auf eine vollständige Beschreibung aller ablaufenden Prozesse:
......@@ -10,19 +10,19 @@ Zunächst werden hier der User-Agent und die IP-Adresse des Abfragenden anonymis
Als nächstes werden alle benötigten Klassen vom `Laravel-Classloader` geladen, damit dies später nicht mehr passieren muss.
Nun müssen noch die Abhängigkeiten aufgelöst und die Einstellungen geladen werden. Dieser Prozess instanziert das Objekt `App`.
### Verarbeitung des aufgerufenen Pfades `/app/http/routes.php`
An dieser Stelle werden die übergebenen [Pfade](https://www.laravel.com/docs/5.2/routing) verarbeitet und entschieden auf welche Art die Anfrage beantwortet werden soll.
### Verarbeitung des aufgerufenen Pfades `/app/http/web.php`
An dieser Stelle werden die übergebenen [Pfade](https://www.laravel.com/docs/5.4/routing) verarbeitet und entschieden auf welche Art die Anfrage beantwortet werden soll.
Dabei gibt es etliche Möglichkeiten, z.B.:
1. Kann direkt ein View zurückgegeben werden
2. Kann die Funktion eines Controllers aufgerufen werden, welcher widerum am Ende einen View zurück gibt. Alle Controller befinden sich dabei unter `/app/Http/Controllers`
3. Kann zusätzlich eine Middleware definiert werden, also ein Programm welches ausgeführt werden soll nachdem die Anfrage angenommen wurde, aber bevor diese verarbeitet wird.
In unserem Fall für den Pfad `/meta/meta.ger3` ist dort definiert, dass im [Controller](https://www.laravel.com/docs/5.2/controllers) `MetaGerSearch` die Funktion `search` aufgerufen wird.
In unserem Fall für den Pfad `/meta/meta.ger3` ist dort definiert, dass im [Controller](https://www.laravel.com/docs/5.4/controllers) `MetaGerSearch` die Funktion `search` aufgerufen wird.
### Die eigentliche Suche `/app/Http/Controllers/MetaGerSearch.php`
Laut Funktion wird an diese ein Objekt der Klasse `Request` und eins der Klasse `MetaGer` übergeben.
Das `MetaGer` Objekt ist dabei definiert als [Service Provider](https://www.laravel.com/docs/5.2/providers), sodass es bereits fertig initialisiert übergeben werden kann.
Das `MetaGer` Objekt ist dabei definiert als [Service Provider](https://www.laravel.com/docs/5.4/providers), sodass es bereits fertig initialisiert übergeben werden kann.
Ab diesem Moment läuft alles relativ > straight forward <
1. `$metager->parseFormData($request)`
......@@ -30,7 +30,7 @@ Ab diesem Moment läuft alles relativ > straight forward <
2. `$metager->checkSpecialSearches`
* Hier überprüfen wir, ob eine besondere Art der Suche (z.B.: Stringsuche,...) durchgeführt werden soll.
3. `$metager->createSearchEngines()`
* Je nach Sucheinstellung werden entsprechende `Searchengine-Objekte` aus dem Verzeichnis `/app/Models/parserSkripte/` erstellt. Gleichzeitig wird, nachdem das Objekt fertig erstellt wurde, per [Dispatch](https://www.laravel.com/docs/5.2/queues#pushing-jobs-onto-the-queue) die entsprechende HTTP-Request in Auftrag gegeben.
* Je nach Sucheinstellung werden entsprechende `Searchengine-Objekte` aus dem Verzeichnis `/app/Models/parserSkripte/` erstellt. Gleichzeitig wird, nachdem das Objekt fertig erstellt wurde, per [Dispatch](https://www.laravel.com/docs/5.4/queues#pushing-jobs-onto-the-queue) die entsprechende HTTP-Request in Auftrag gegeben.
4. `$metager->rankAll()`
* Nun wird das Ranking über alle Ergebnisse durchgeführt.
5. `$metager->combineResults()`
......
Clone repository
  • Ideen und Vorschläge für MetaGer
  • Setup Metager
  • aufsetzen einer metager entwicklungsumgebung
  • betrieb einer metager instanz
  • einfuhrung in laravel
  • Home
  • howtoticketsystem
  • laravel elixir setup
  • suchmaschinenubersicht
  • sumas xml
  • usability
  • wie funktioniert metager