Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#3

AW: Intelligente Suche - websiten durchsuchen

  Alt 22. Jan 2016, 12:34
Hallo Marco,

irgendwie werde ich das Gefühl nicht los, dass Ihr in Eurem Unternehmen eher ein Problem mit dem Thema "Knowledge-Management" habt und Ihr das Problem von einer ganz anderen Seite angehen solltet, nämlich Eure Informationen zu konsolidieren und an einem geeigneten Platz mit geeigneten Medien abzulegen (Dokus, EIN Forum, evtl. Videoanleitungen, etc.).
Das was Du beschreibst kommt mir SEHR bekannt vor, aber gottseidank haben wir hier in unserem Unternehmen so ein "Chaos" einigermaßen überwunden Das beduete sicher Arbeit und Changemanagement aber es ist, meiner Meinung nach, sehr viel sinnvoller, zielführender und vor allem zukunftssicherer.

Grüß Peter
Die Aufgabe ist aber letztlich, innerhalb des Studiums eine Suchmaschine zu schreiben.

Mein Vorgehen wäre:

Zuerst einmal klären, welche Systeme "angezapft" werden müssen.
Wo liegen ggfls. "feste" HTML-Seiten oder sonstige Textdateien, die ausgewertet werden müssen?
Welche Informationen können nur über eine Browser (URL) erreicht werden?
Gibt es noch weitere Quellen, wenn ja, wie sind sie erreichbar?

Anschließend prüfen, welche Quelle auf welchem Weg auswertbar ist.
Gibt es für mehrere Quellen identische Wege zur Auswertung...
Alles, was per JavaScript, Ajax oder sonstwie nachgeladen wird, hat irgendwo eine Quelle. Wo ist diese Quelle und wie ist diese auszuwerten?

Im Idealfall landet man immer bei irgendeiner Datenbank oder bei Dateien.

An Datenbanken kommt man per SQL, Dateien kann man parsen (ggfls. muss man vorher den Text irgendwie extrahieren, wie z. B. bei PDF-Dateien).

Zur Vorhaltung der für die Suche relevanten Daten käme eine Datenbank infrage.

Eine Tabelle (Fundstellen), die eine Beschreibung der Quelle und die Fundstelle enthält, sowie eine ID als technischen Schlüssel.
Bei HTML-Seiten könnte die Beschreibung z. B. der Inhalt des Title-Tags und die Quelle die URL sein, Bei PDF-Dateien als Beschreibung nur der Dateiname und als Quelle der vollständige Pfad.

Eine weitere Tabelle (Wortliste) enthält eine Wortliste.
Diese Tabelle wird beim Lesen der Dateien zur Aufnahme in die Fundstellen befüllt.
Allerdings enthält sie jedes Wort nur einmal, unabhängig davon, wie oft es, egal in welcher Fundstelle, vorkommt. Jedes Wort erhält eine ID als technischen Schlüssel.

Eine dritte Tabelle (Beziehung) sorgt für die Verbingung der Tabellen Fundstellen und Wortliste.
Sie wird zusammen mit der Wortliste aufgebaut. Für jedes Wort erhält sie den technischen Schlüssel der Fundstelle und den technischen Schlüssel des Wortes aus der Wortliste. Sie stellte also eine 1:n-Beziehung zwischen der Fundstelle und der Wortliste dar.

Zur Auswertung wird nun "nur" noch eine SQL-Abfrage benötigt, die aus einer Anwendereingabe generiert wird.

So in der Art:
SQL-Code:
select
  count(*) as Anzahl,
  f.Beschreibung,
  f.Quelle
from Fundstellen f, Beziehnung b, Wortliste w
where w.id = b.WortlisteID
and f.id = b.FundstellenID
and w.wort in (:Eingabe)
group by
  f.Beschreibung,
  f.Quelle
order by 1 desc, 2, 3
Das SQL muss dynamisch aufgebaut werden, der Parameter :Eingabe wird durch alle als Suchbegriff eingegebenen Wörter in korrekter SQL-Syntax ersetzt.

Aus der Ergebnismenge dieses SQL-Statements kann man eine HTML-Seite generieren. Die Quellen, die am Häufigsten in der Tabelle Beziehung vorkommen, dürften durch die Zählung und Gruppierung im Ergebnis vor den Quellen erscheinen, die nur einmalig in der Tabelle Beziehung vorkommen. Damit sollte sich eine einfache Gewichtung realisieren lassen.

So, das soll jetzt mal als "Ideenfutter" reichen.

Geht es in der Aufgabe um die Beschreibung, wie die Software gestaltet sein könnte, oder um eine konkrete Umsetzung?
  Mit Zitat antworten Zitat