
Die intelligente Suchmaschine von nebenan
Prototyp einer Web-Suchmaschine mit Crawler-Netzwerk, Volltextsuche und KI-gestützter Bildersuche – entstanden 2018/2019 als Bachelorarbeit an der Hochschule Merseburg.
Die Idee
Eine eigene Suchmaschine bauen – vom Crawler bis zur Suchmaske
ZyperSearch war der Versuch, ein vollständiges Information-Retrieval-System selbst zu bauen: ein Netzwerk aus Crawlern sammelt Webseiten, Dokumente und Bilder, ein Server legt alles in einer Datenbank ab, und ein Web-Frontend beantwortet Suchanfragen. Klassische Volltextsuche für Text, ein neuronales Netz für Bilder.
Volltextsuche
Boolesche Suche über Titel, Meta-Keywords und Seiteninhalt, gespeichert in MySQL. Ergebnisse werden nach Trefferhäufigkeit sortiert – ein späterer Ausbau brachte ein Ranking der Suchwörter.
Bildersuche mit neuronalem Netz
Jedes gefundene Bild wird mit TensorFlow (Inception-Modell) klassifiziert und per Tesseract-OCR nach Text durchsucht. Gesucht wird also nach dem, was auf dem Bild ist – nicht nur nach dem Dateinamen.
Dokumente inklusive
PDF-, Word-, Excel- und PowerPoint-Dateien werden mit Apache PDFBox und Apache POI ausgelesen und wie Webseiten indexiert. Die Suchmaske filtert nach Webpages, PDF und Office.
Architektur
Drei getrennte Module, verbunden über Sockets und eine Datenbank
Der Prototyp lief im Intranet der Hochschule Merseburg: Die Crawler auf Poolrechnern und zwei ausgemusterten Servern, der Datenbank- und Webserver in der DMZ. Jeder Crawler holt sich beim Server den ältesten unbearbeiteten Link (FIFO), analysiert ihn und meldet Inhalt, MIME-Type und neu gefundene Links zurück.
Crawler-Netzwerk
Netzwerk A · Hochschul-Intranet
- 6 Poolrechner + 2 Altserver, Ubuntu 16.04
- Java, jsoup für HTML, PDFBox/POI für Dokumente
- TensorFlow Inception + Tesseract OCR für Bilder
- Client-Cache gegen doppelte Links
Server
Netzwerk B · DMZ der Hochschule
- Dell PowerEdge T300, Ubuntu 18.04
- Java Socket-Server, Port 2156
- MySQL: Tabellen Hosts, Links, Emails
- FIFO-Vergabe des ältesten Links, Zeitstempel
Web-Frontend
Apache Tomcat 9 · Port 8080
- JSP + Servlet, Ajax-Requests mit XML-Antwort
- Standardsuche, Bildersuche, Statistik
- Ergebnisse: Titel, Link, 140-Zeichen-Snippet
- Footer zeigt die Zahl bekannter Links (gecacht)
Freigeschaltete Ports: SSH 22022 und Web 8080 aus dem Internet, Crawler-Schnittstelle 2156 aus dem Intranet – jeder Port musste beim Netzwerkadministrator beantragt werden.
Zahlen & Fakten
55 Mio.
Bekannte Links
Stand März 2019, laut Footer der Suchmaske
20 Mio.
Datensätze im Testlauf
danach SSD-RAID 0 für MySQL nachgerüstet
8
Crawler-Rechner
6 Poolrechner + 2 ehemalige Hochschulserver
Dell PowerEdge T300
Server
Xeon X3363, 4 Kerne, 20 GB RAM
16
Repositories
Crawler-Varianten, Server, Bilderkennung, Web, API
102 Seiten
Umfang der Arbeit
6 Kapitel, 26 Abbildungen, 88 Quellen
Technik-Stack
Stand 2019/2020 – bewusst nicht modernisiert
Kern
Analyse
Spätere Experimente
Der Prototyp in Aktion
Screenshots aus der Bachelorarbeit (Abbildungen 23–25)



Die Katzen sind geblieben: Aus der Bildersuche wurde Jahre später die Idee für CatCatch, unsere App für Streunerkatzen. cat-catch.de
Historie
Von der ersten Suchmaske bis zu dieser Seite
Idee und erste Crawler
Start des Projekts neben dem Studium: Crawler-Clients in Java, Socket-Server und MySQL-Schema. Erste Testläufe im Hochschulnetz mit ausgemusterter Server-Hardware.
Erste Suchmaske
Das Web-Frontend entsteht auf Tomcat: main.jsp mit Logo, Suchfeld und „Suchen!“-Button, dazu die Bildersuche.
Suchoptionen und Boolesche Suche
Filter für Webpages, PDF und Office, Suche per Enter-Taste, Boolesche Verknüpfung der Suchbegriffe.
Abgabe der Bachelorarbeit
102 Seiten zu Information Retrieval, neuronalen Netzen und dem Prototyp. Am 28. März 2019 veröffentlicht die Hochschulbibliothek die Arbeit unter CC BY 4.0.
zypersearch.de
Diese Projektseite geht online. Die Katzen aus der Bildersuche leben in CatCatch weiter.
Ehrliches Fazit
Was der Prototyp gezeigt hat – und was nicht
„Wie sich bei der Entwicklung des Prototypen gezeigt hat, ist es wichtig für eine gute Web-Suchmaschine, nicht nur einen der beiden Ansätze zu verfolgen, sondern eine Kombination aus beiden zu wählen.“
- 1
Für die Suche nach Textphrasen reichen klassische Textanalyseverfahren weitgehend aus. Neuronale Netze bringen dort erst etwas, wenn Nutzungsdaten vorliegen, mit denen sich das Ranking personalisieren ließe.
- 2
Bei der Bildersuche sind neuronale Netze nicht mehr wegzudenken: Gesucht wird nach dem Inhalt eines Bildes, und den erkennt nur das Netz. Titel und OCR-Text blieben trotzdem wichtig, weil das Inception-Modell nicht ausreichend auf Eigennamen trainiert war.
- 3
Skalierung braucht Clustering und strikt gekapselte Module. Neue Links gehörten erst in eine temporäre Datenbank, die optimiert wird, bevor sie die Suchdatenbank ersetzt.
- 4
Die Marktführer sind nicht ohne Grund so erfolgreich. Eine neue Suchmaschine könnte sich in Europa nur mit anderen Regeln behaupten: vollständig transparent, Open Source, werbefrei, spendenfinanziert und in Europa gehostet.
- 5
Realistisch betrachtet wird keine neue Suchmaschine einen Marktführer vom Thron stoßen. Der Prototyp hat aber gezeigt, dass ein komplettes Retrieval-System mit Hochschulmitteln machbar ist.
Neugierig geworden?
Die komplette Arbeit gibt es zum Lesen und Herunterladen, die alte Suchmaske zum Ausprobieren.