Die eigene Suchmaschine

Sp1xx

NGBler
Registriert
9 Okt. 2013
Beiträge
641
Ort
Bavaria
Hallo zusammen,

im Rahmen eines Uni-Projekts, bin ich dabei zu recherchieren wie wir an das Thema (Themenorientierte)Suchmaschine heran gehen.

Anforderungen:

  • ( Responsive ) Frontend
  • Verschiedene Quellen / Seiten
  • Verschiedene Inhalte
  • Anpassbare Filter

Das sind so die wichtigsten Anforderungen, entsprechen aber auch ungefähr dem was man sich von so einem Projekt erwartet.
Nach einer Recherche im Netz habe ich ungefähr eine Idee welche Software zum Einsatz kommen könnte. Dazu habe ich ein Schaubild gezeichnet.
Dieses Schaubild ist ungenau und mit Sicherheit nicht komplett richtig. Es soll euch nur verdeutlichen wie ich mir das ganze vorgestellt habe.



Was will ich von euch?
Hat jemand von euch vielleicht schon Erfahrungen mit einem Projekt oder der beispielhaft ausgesuchten Software gemacht? Gibt es noch andere Möglichkeiten? Jemand eine Idee zusätzlich? Jemand schon einmal so unterschiedliche (dynamische) Seiten gecrawlt?

Natürlich werde ich, bei Interesse, entsprechende Updates hier ergänzen.

VG
 
Anforderungen:

  • ( Responsive ) Frontend
  • Verschiedene Quellen / Seiten
  • Verschiedene Inhalte
  • Anpassbare Filter

Ich glaub, ihr habt den falschen Ansatz bzw. unterschätzt das Thema massiv. Google wurde so erfolgreich aus zwei Gründen:
  • Extrem gute Suchalgorithmen
  • Aufgeräumtes minimalistisches Design

Responsive Frontend ist zwar nett. Aber mehr als eine Autovervollständigung der Suchbegriffe ist nicht notwendig.

Um Dich erst mal in das Thema Suche und Indexierung einzuarbeiten:

Der Link ist deswegen interessant, da Nepomuk ein von der EU gefördertes Projekt war, was auf Basis von arbeitete.

Und vor ein paar Jahren hab ich mal mit rumgespielt, kam da aber auf keinerlei brauchbare Ergebnisse. Yacy dürfte aber in etwa dem entsprechen, was ihr selbst programmieren wollt.

Weitere Projekte, die Dir Ideen liefern könnten:
ist seit einiger Zeit ein ziemliches Boomprojekt. ist eine Suchmaschine, die man in der eigene lokal installierte Wiki einbauen kann, um bessere Suchergebnisse zu erhalten.

Euer Hauptproblem bei einer Suchmaschine wird die Wissenaufbereitung und -abfragemöglichkeit sein. Ihr müsst die vorhandenen Daten filtern (Datamining), organisieren und verknüpfen (s.o. Ontologien, Neuronale Netze, usw., d.h. KI) und dem Nutzer Ergebnisse präsentieren können, d.h. semantische und Ähnlichkeitssuche (Google: "Meinten Sie…"). Das sind die wirklich schwierigen Punkte. Das Frontend ist der unwichtigste Punkt.

Viel Erfolg! Und berichte mal bitte nach Abschluss des Projektes, was dabei rausgekommen ist! Meine Diplomarbeit hatte vor einigen Jahren zumindest in Ansätzen einen ähnlichen Fokus.
 
Kann auch nur dazu raten, dass ihr damit anfangt, das Projekt konkret zu beschreiben.
Das Bild gibt ja so ziemlich nichts her. Datenbank. Server. Abfragen. Websites. Ja gut. Auf der Ebene ist ja sowieso alles klar.

Kann euch sehr mockup-screens o.ä. empfehlen. einfach mal die screens zeichen, da findet man dann schnell was. Und dann danach eben das crawling, die Datenbank etc. funktional skizzieren.
 
Über das Frontend würde ich mir hier erstmal gar keine Gedanken machen, die Aufbereitung der gesammelten Daten deutlich aufwändiger.
 
  • Thread Starter Thread Starter
  • #5
Hey.
Danke für die Tipps. Ich schreibe heute Abend noch einmal hier dazu mehr.

Bzgl der Anforderungen. Es handelt sich hier um ein "simuliertes" Projekt. Die Anforderungen stammen von einem Menschen ohne IT Kenntnisse. Die Zeichnung ist während dem ersten Treffen entstanden und soll den technischen Hintergrund den weniger technisch Affinen Menschen helfen.

Wir haben "intern" andere Anforderungen.
Mit yacy,solr und möglichen API Schnittstellen experimentiere ich schon.

Mehr dazu heute Abend, danke für die Tipps soweit!

Vf
 
Ich hab mal irgendwo einen Text gelesen der sinngemäß folgendes sagte:
Wenn dein Auftrag lautet:
Bring einen Affen dazu auf einem 20 Meter hohen Podest Shakespaer Stücke aufzuführen!

Was du zuerst tun solltest ist dem Affen Shakespear näher zu bringen. Das Podest mag beeindruckender aussehen, ist aber der einfache Teil. Wenn du also zuerst das Podest baust hast du zwar schnell was auffälliges zum präsentieren, aber auch deine Ressourcen verschwendet wenn du es nicht schaffst dem Affen Shakespear beizubringen.
Das Podest zu bauen nachdem der Affe Shakespaer Stücke aufführen kann ist eine Kleinigkeit.

Das gesamte Frontend ist offensichtlich das Podest.
 
@Spixx: Das Problem was du bei dynamischen Inhalten haben wirst, wenn Inhalte mit Javascript arbeiten bzw. eingebunden werden (Ajax) würde ein Crawler der sich reines HTML ansieht, nicht viel sehen. Das könnten zum Beispiel Kommentarspalten sein die dynamisch geladen werden über eine Javascript API. Es kann aber auch andere Showstopper geben, wenn du Javascript nicht emulierst bzw. ausführen kannst. Zum Beispiel eine Navigation über Javascript, die nicht unbedingt Barrierefrei aufgebaut ist.

Für so etwas würde sich zum Beispiel ein Headless Browser eignen:

Je nachdem wie weit das gehen soll, kann man aber auch andere Engines nutzen, spontan so etwas wie .

Hier gibt es auch eine umfangreiche Liste:

Um große Datenmengen zu verwalten könnte auch dienen und was wohl auch ganz niftig sein soll - allerdings ist das alles sicherlich nicht in 5 Minuten gemacht. Würde ich von ausgehen....
 
  • Thread Starter Thread Starter
  • #8
Danke für alle Informationen und Anregungen.

Zunächst einmal zu den Projektanforderungen.
Mir ist und war klar, dass die Anforderung im wahrsten Sinne zu Oberflächlich waren. Es wurden wie von euch angesprochen hauptsächlich Buzzwords und Themen die lediglich das frontend betreffen genannt.
Speziell die Skizze oben war meine erste Idee das ganze umzusetzen. Das das crawlen und indizieren von unterschiedlichen Webportalen noch schwieriger als schon gedacht ist, habe ich spätestens beim testen solcher Programme gemerkt.
Eingesetzt habe ich sowohl als auch eine Kombination aus und .

Während das abfragen von importierten Informationen dank einiger verfügbaren clients gut geklappt hat, war das crawlen sehr schwierig. Gerade dynamischer Inhalt ist hier ein riesen Problem.
Aber wenigstens habe ich hier ein paar Erfahrungen mehr sammeln können.

Zum weiteren Vorgehen

Wir sprechen hier ja zum Glück nicht von x-beliebigen Seiten, sondern von einer Auswahl an Seiten mit speziellen Inhalt. Alle in der jetzigen Auswahl stehenden Seiten sind ähnlich kategorisiert.
Entsprechend sind wir derzeit dabei uns API Zugriff bei den ausgefilterten Anbietern einzuholen.

Der Datenimport scheint also wesentlich einfacher zu sein als zunächst vermutet.
Wir sind im Moment bei hängen geblieben. Dieser wird im Backend als Suchserver dienen.
Zum importieren werden wir eine entsprechende Anwendung schreiben müssen, welche die verschiedenen JSON-Daten vereinheitlicht und aufbereitet.


Ich gebe zu, ich war ein wenig zu voreilig was das eröffnen dieses Threads angeht :)
Natürlich freue ich mich auch auf weitere Anregungen zu den "neuen" Anforderungen.

Ich versuche, soweit es möglich ist, Lösungswege und weitere Fragen die auftreten hier wieder nachzutragen.

Danke
 
Zurück
Oben