So erstellen Sie eine Suchmaschine in PHP und MySQL

Warum sollten Sie überhaupt eine Suchmaschine erstellen? Es gibt bereits eine Suchmaschine, die sie alle beherrscht. Mit Google können Sie so ziemlich alles im Internet finden, und ich bezweifle, dass Sie jemals über die gleichen Rechen- und Speicherkapazitäten verfügen werden wie das große G.

Warum also dann eine eigene Suchmaschine erstellen? — Natürlich um Geld zu verdienen!

…und als Schöpfer der nächsten großen Suchmaschine berühmt zu werden oder weil man als Programmierer oder Ingenieur Herausforderungen mag. Eine Suchmaschine für das öffentliche Internet zu erstellen ist knifflig, und wenn Sie wie ich sind, lösen Sie gerne knifflige Probleme.

Die dritte Anwendung ist eine maßgeschneiderte Hochgeschwindigkeits-Site-Suche für Ihre Website mit mehreren Tausend Seiten. Eine indizierte Suchmaschine ist viel schneller als eine Volltextsuchfunktion. Wenn die Site-Suche von Google für Ihre Site nicht flexibel genug ist, können Sie Ihre eigene Suchfunktion erstellen.

DIE GRUNDLAGEN DER SUCHE

Die Grundlage jeder GROSSEN Suchmaschine ist ein Wort-zu-Webseiten-Index, im Grunde eine lange Liste von Wörtern und wie gut sie sich auf verschiedene Webseiten beziehen.

Um eine Suchmaschine zu erstellen, müssen Sie vier Dinge tun:

* Entscheiden Sie, welche Seiten abgerufen werden sollen, und rufen Sie sie ab
* Analysieren Sie Wörter, Phrasen und Links von der Seitegoogle-custom-se
* Geben Sie jedem Schlüsselwort oder jeder Schlüsselphrase eine Bewertung, die angibt, wie gut sich die Phrase auf diese Seiten bezieht, und speichern Sie die Bewertungen im Suchmaschinenindex
* Bieten Sie Benutzern die Möglichkeit, den Index abzufragen und eine Liste passender Webseiten zu erhalten

Für einen erfahrenen Programmierer ist das nicht schwer. Wenn Sie sich mit regulären Ausdrücken auskennen und etwas Erfahrung mit HTML und Datenbanken haben, können Sie dies an einem Tag erledigen.

Jetzt haben Sie eine funktionierende Suchmaschine, fügen Sie einfach viele Computer und Festplatten hinzu und schon werden Sie das gesamte Internet indizieren. Wenn Sie nicht bereit sind, so weit zu gehen, enthält eine 50-Terabyte-Festplatte einen Index von etwa XNUMX Millionen Seiten.

SO BEWERTEN SIE SEITEN

Nachdem Sie die grundlegenden Suchfunktionen abgeschlossen haben, liegt noch viel Arbeit vor Ihnen, bevor irgendjemand Ihr neues Gerät nutzen möchte. Ein Index reicht nicht aus. Die Herausforderung besteht darin, Seiten zu bewerten, um dem Endbenutzer die Suchergebnisse zu liefern, die für seine Vorstellung davon, wonach er sucht, am relevantesten sind.

Sie müssen entscheiden, wie viel Gewicht Sie den Schlüsselwörtern im Kachel-Tag, in der Beschreibung und im Inhalt der Hauptwebseite beimessen möchten. Um eine gute Bewertung zu erzielen, sollten Sie auch die in der URL der Seite gefundenen Schlüsselwörter verstärken und den Ankertext eingehender Links überprüfen. Das Verfolgen eingehender Links ist die nützlichste und anspruchsvollste der oben genannten Aufgaben. Sie müssen eine separate Datenbanktabelle mit Informationen zu allen Links zwischen den von Ihnen indizierten Seiten führen.

Was indiziert werden soll und was nicht

Weitere Hindernisse, auf die Sie stoßen werden, wenn Sie mit der Indizierung echter Internetinhalte beginnen, sind die Tatsache, dass überall Unmengen an nutzlosem Müll im Umlauf sind und Ihr Index irgendwann voller Spam, Affiliate-Seiten, geparkter Domains, in Arbeit befindlicher Homepages ohne Inhalt und Links sein wird Farmen, die von Suchmaschinenoptimierern verwendet werden, Spiegelseiten, die Datenfeeds verwenden, um Tausende von Seiten mit Produktlisten oder anderen reproduzierten Inhalten zu erstellen usw. usw.

Bei der Indizierung aus dem Internet müssen Sie Möglichkeiten finden, Junk-Inhalte aus dem herauszufiltern, was die Leute tatsächlich lesen und suchen. Zunächst könnten Sie einschränken, wie tief Sie in Unterverzeichnisse crawlen, wie viele Link-Hops von einer Domain-Indexseite Sie crawlen und wie viele Links pro Webseite zulässig sind.

Parsen von Websites

Es gibt eine Million richtige und falsche Möglichkeiten, HTML zu schreiben, und wenn Sie aus dem Internet indizieren, müssen Sie mit allen umgehen.

Beim Parsen von Schlüsselwörtern von Seiten müssen Sie nicht nur den gesamten HTML-Standard beherrschen, sondern auch alle nicht standardmäßigen Methoden, die inoffiziell von Internetbrowsern unterstützt werden.

Um alle Seiten lesen zu können, müssen Sie außerdem clientseitiges Javascript analysieren, Frames, CSS und Iframes verarbeiten.
Dies ist ein großer Teil der Arbeit an einer allgemeinen Suchmaschine, um alle Arten von Inhalten lesen zu können.

WARUM SO VIELE URLS?

Schließlich müssen Sie sich mit der Tatsache auseinandersetzen, dass viele Websites über viele URLs verfügen, die auf dieselbe Webseite verweisen. Schauen Sie sich einfach dieses Beispiel an:

dmoz.org
www.dmoz.org
dmoz.org/index.html
www.dmoz.org/index.html

Alle diese URLs verweisen auf dieselbe Webseite. Wenn Sie keinen speziellen Code dafür erstellen, werden in Ihrer Suchmaschine bald vier Ergebnisse angezeigt (eines für jede URL), die alle auf dieselbe Seite verweisen. Die Benutzer werden Sie nicht mögen.
Es besteht auch die Möglichkeit von Abfragezeichenfolgen, bei denen eine Sitzungs-ID nach dem Fragezeichen in der URL nahezu unendlich viele URLs für dieselbe Webseite erstellt.

google.com?SID=4434324325325
google.com?SID=4387483748377
google.com?SID=7654565644466

Für die Suchmaschine wird es eine wirklich große Anzahl von Seiten geben, die alle den gleichen Inhalt haben. Die schnelle Lösung besteht natürlich darin, Seiten, die eine Abfragezeichenfolge enthalten, nicht zu indizieren. Oder um die Abfragezeichenfolge von Seiten zu entfernen. Dies funktioniert, entfernt aber auch viele legitime Inhalte (z. B. Foren) aus Ihrem Index.

Sie verfügen nun über alle Informationen, die Sie zum Erstellen einer Website-Suchmaschine benötigen. Wenn Sie sich für eine allgemeine Internetsuchmaschine entscheiden, müssen Sie noch viel mehr Details angeben. Wie robots.txt, Sitemaps, Weiterleitungen, Proxies, Erkennung von Inhaltstypen, erweiterte Ranking-Algorithmen sowie der Umgang mit Terabytes an Daten. Ich werde in einem zukünftigen Artikel ausführlicher darauf eingehen. Viel Glück bei Ihrem nächsten Suchmaschinenprojekt!

KategorienBlog
  1. Pingback:Tweets, in denen TopTut.com erwähnt wird – Top-Tutorials » So erstellen Sie eine Suchmaschine in PHP und MySQL – Topsy.com

  2. Pingback:TopTut.com – Top-Tutorials » Wie man eine Suchmaschine in PHP erstellt … | Suchmaschinenwerbung online

Kommentarfunktion ist abgeschaltet.