Omar Ahmad: Suchmaschine erstellen

Hallo,

ich habe mich dazu entschieden eine eigene Suchmaschine zu erstellen, die andere Seiten finden kann, wie in etwa Google, Yahoo, Fireball, etc.

Ja ich weiß die diese Suchmaschinen sind bisschen groß doch könnte mir einer sagen wie man so etwas erstellt?

Muss man eine Datenbank erstellen mit allen Seiten auf der ganzen Welt?

Ich wäre über jede Hilfe sehr dankbar!

MfG

Ahmad Schah Omar

  1. Hello,

    oh wow, ehrzeiziges Projekt, kann nicht sagen, dass ich nicht selbst schonmal über sowas nachgedacht hätte, aber ist schon eine Menge Aufwand wenn's was werden soll.

    Muss man eine Datenbank erstellen mit allen Seiten auf der ganzen Welt?

    jein, man muss so viele Seiten wie möglich mit einem geeigneten Verfahren indizieren, wenn du das als Datenbank bezeichnest OK.

    Ich geb dir mal ein paar Einstiegslinks:
    Information Retrieval
    Page Rank
    Crawler
    Suchmaschinen allgemein

    MfG
    Rouven

    --
    -------------------
    Let Bygones Be Bygones  --  Robert Pitscottie: "Chronicles of Scotland"
  2. Hi

    Das Prinzip einer Suchmaschine ist denkbar einfach - nur das zu programmieren wird nicht leicht.

    Der Robot fängt an, das Internet zu durchsuchen. Dabei indiziert er seine Seiten nach folgenden Kriterien, die nachher auch zur Ausgabepriorität wichtig sind:

    • Seitentitel <title></title>
    • meta-Daten <meta>
    • Häufigkeit der vorkommenen Worte
    • Welches HTML-Element die Worte haben, bspw <h1>, <h2>, afaik auch wie groß die geschrieben sind
    • Welches Dateiformat die Datei hat - .html- und .htm-Dateien werden bspw von den meisten Suchmaschinen bevorzugt

    Dann durchsucht er auf den Seiten, auf die die davorige Seite verlinkt hat, weiter. Das können Unterseiten und/oder projektexterne Links sein, und indiziert auch diese auf dieselbe Weise. Meistens wird auch noch indiziert, welche Seite wohin verlinkt (google zum Beispiel, was man dann per Eingabe von "link:" auslesen lassen kann).

    Das ist das Grundprinzip.
    Es ist also quasi ein Code, der immer läuft. Ob die Suchmaschinen das per Cronjob machen, was sich auch anbieten würde, weiß ich nicht. Da wissen andere bestimmt mehr.

    Ich wünsche die viel Spaß beim Programmieren, viel Geduld und Spaß an der Sache (ich denke das alles wirst du brauchen)
    Omer

    PS: Ein Robot kennt kein Flash, kein Java, kein Javascript, keine Bilder, er kennt nur TEXT!
    Kennst du die Geschichte vom Webserver im Pub? Könnte da bitte jemand drauf verlinken, denn ich hab den Link nicht mehr...

    1. PS: Ein Robot kennt kein Flash, kein Java, kein Javascript, keine Bilder, er kennt nur TEXT!
      Kennst du die Geschichte vom Webserver im Pub? Könnte da bitte jemand drauf verlinken, denn ich hab den Link nicht mehr...

      http://www.woodshed.de/publikationen/dialog-robot.html

  3. Hi there,

    Ja ich weiß die diese Suchmaschinen sind bisschen groß doch könnte mir einer sagen wie man so etwas erstellt?

    Du willst eine Suchmaschine erstellen und weisst nicht wie? Warum baust Du Dir keinen Atomreaktor im Hinterzimmer; davon hast Du auch keine Ahnung und das ist vermutlich einfacher.

    Sorry, aber mein Tip: Lass es bleiben...

    1. Hello,

      Sorry, aber mein Tip: Lass es bleiben...

      na ja, so ganz pauschal würde ich das nicht sagen, experimentieren kann man immer. Man lernt auf jeden Fall eine Menge (über) Algorithmen, Theorie von Sprache und lernt Datenmengen kennen, die einem ein bis dahin unbekanntes Kopfzerbrechen bereiten.

      MfG
      Rouven

      --
      -------------------
      Computer programming is tremendous fun. Like music, it is a skill that derives from an unknown blend of innate talent and constant practice. Like drawing, it can be shaped to a variety of ends: commercial, artistic, and pure entertainment. Programmers have a well-deserved reputation for working long hours but are rarely credited with being driven by creative fevers. Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination, but because their imagination reveals worlds that others cannot see. -- Larry OBrien and Bruce Eckel in Thinking in C#
      1. Hi there,

        na ja, so ganz pauschal würde ich das nicht sagen, experimentieren kann man immer. Man lernt auf jeden Fall eine Menge (über) Algorithmen, Theorie von Sprache und lernt Datenmengen kennen, die einem ein bis dahin unbekanntes Kopfzerbrechen bereiten.

        Da geb' ich Dir absolut recht, auf der anderen Seite lernt man vom Herumprobieren an einer Materie nur, wenn man auf einem dem Wissenstand entsprechendem Niveau experimentiert. Und genau das scheint mir zu fehlen, die Frage allein schien mir etwas, na sagen wir, naiv zu sein. (Ohne damit den OP beleidigen zu wollen, deswegen riet ich ihm von seinem Vorhaben auch ab...)

        1. na ja, so ganz pauschal würde ich das nicht sagen, experimentieren kann man immer. Man lernt auf jeden Fall eine Menge (über) Algorithmen, Theorie von Sprache und lernt Datenmengen kennen, die einem ein bis dahin unbekanntes Kopfzerbrechen bereiten.

          Da geb' ich Dir absolut recht, auf der anderen Seite lernt man vom Herumprobieren an einer Materie nur, wenn man auf einem dem Wissenstand entsprechendem Niveau experimentiert. Und genau das scheint mir zu fehlen, die Frage allein schien mir etwas, na sagen wir, naiv zu sein. (Ohne damit den OP beleidigen zu wollen, deswegen riet ich ihm von seinem Vorhaben auch ab...)

          Naja ganz unwissend bin ich nun auch wieder nicht...

          Ich hab schon einige Vorkenntnisse und kenne mich ziemlich gut mit Computer aus nur wollte ich fragen, wie in etwa so eine Suchmaschine aufgebaut ist?

          1. Hi there,

            Ich hab schon einige Vorkenntnisse und kenne mich ziemlich gut mit Computer aus nur wollte ich fragen, wie in etwa so eine Suchmaschine aufgebaut ist?

            Ja, ist ok, wie gesagt, ich wollte Dich nicht beleidigen, und ein paar gute Tipps hast Du ja schon bekommen. Es ist aber ein gewaltiger Unterschied, ob man das Prinzip versteht und aus diesem Verständnis heraus nachprogrammiert oder ob man eine "funktionierende" Suchmaschine baut, die dann tatsächlich genutzt wird. Da stecken viel Knowhow und hunderte wenn nicht tausende Mannjahre an Entwicklung dahinter...

            1. Hi there,

              Ich hab schon einige Vorkenntnisse und kenne mich ziemlich gut mit Computer aus nur wollte ich fragen, wie in etwa so eine Suchmaschine aufgebaut ist?

              Ja, ist ok, wie gesagt, ich wollte Dich nicht beleidigen, und ein paar gute Tipps hast Du ja schon bekommen. Es ist aber ein gewaltiger Unterschied, ob man das Prinzip versteht und aus diesem Verständnis heraus nachprogrammiert oder ob man eine "funktionierende" Suchmaschine baut, die dann tatsächlich genutzt wird. Da stecken viel Knowhow und hunderte wenn nicht tausende Mannjahre an Entwicklung dahinter...

              Aber ich weiß noch immer nicht wie eine Suchmaschine genau aufgebaut ist^^

              1. Hi there,

                Aber ich weiß noch immer nicht wie eine Suchmaschine genau aufgebaut ist^^

                Naja, im Prinzip ist eine Suchmaschine einfach eine Datenbank, in der Texte und die Orte der Texte gespeichert sind. Das ist der einfache Teil, wenn auch die Datenmengen, die dabei anfallen, gigantisch werden können.

                Wie kommt eine Suchmaschine zu den Daten? Im Prinzip wieder sehr einfach: sie surft. Und zwar, indem sie einfach allen Links folgt, die sie auf den Seiten, die sie besucht, findet. Und was sie dort findet (bis auf wenige Suchmaschinenausnahmen reiner Text) und wo sie es gefunden hat, wird in die eigene DB geschrieben, indizieren nennt man das. Das ist der plausible Teil.

                Warum geht jetzt Dein Rechner nicht über, wenn Du irgendeinen Suchbegriff eingibst? Weil die Suchmaschine für Dich gewichtet - und zwar nach zum Teil bekannten, zum Teil unbekannten und zum Teil nach geleugneten Kriterien. Die in der DB liegenden Daten werden also gefiltert, sortiert und gewichtet. Das benötigt sehr schnelle und speicherintensive Hardware und ausgefuchste Algorithmen. Das ist der komplizierte Teil und der Grund, warum nicht jeder seine eigene Suchmaschine am Rechner liegen hat...

  4. Ich seh das so: Die google-Gründer waren, wenn ich mich nicht irre,
    Studenten oder Absolventen einer Elite-Universität. Das sagt ja schon mal einiges und sie hatten die geniale Idee, wie jeder weiß,
    die eigentliche "Struktur" des Internets auf ihre Suchmaschine zu übertragen...

    Ich denke man muß schon mindestens eine andere, gleichwertige Idee haben um ein bisschen Erfolg mit einer neuen Suchmaschine zu haben.

  5. Hi,

    Du bist bescheuert, das macht Dich symphatisch.

    Wahrscheinlich ahnst Du zu zumindest, daß Dein Vorhaben fast aussichtslos ist. Aber wenn alle sich durch solche Kleinigkeiten von ihren Ideen abhalten lassen würden, dann würde diese Nachricht wohl per Rauchzeichen übermittelt.

    Du möchtest Seiten finden, die die bekannten Suchmaschinen nicht finden. Also frage nicht danach, wie diese arbeiten. Ich würde mir folgende Fragen stellen:

    • Welche Informationen finden heutige Suchmaschinen nicht
    • Wer könnte solche Informationen anbieten
    • In welcher Form (HTML, Datenbanken, Mailing-Listen) könnte solche Information vorliegen?
    • Mit welchen Suchanfragen könnte ein Suchmaschinenanwender danach suchen wollen?

    Ohne solide Informatikkenntnisse wird das aber nix. Die Daten, die Dein Robot findet müssen in äußerst flexiblen Daatenstrukturen abgelegt werden, Du weißt ja vorher gar nicht, wie diese Daten strukturiert sein könnten.

    Und dann brauchst Du ausgefeilte Algorithmen zum Data Mining, um auf eine Suchanfrage hin aus diesem Datenhaufen die hoffentlich passenden Ergebnisse rauszufischen.

    Ansonsten.... Viel Glück!

    Shepard