Kann mich jemand in die richtige Richtung weisen? Ich habe wirklich keine Erfahrung mit dem Schreiben von Code, aber ich lerne schnell. Ich versuche nicht zu sagen, dass es einfach sein wird, aber ich hoffe, jemand kann mir helfen ...
search-engine
Ravi Sheth
quelle
quelle
Antworten:
Ich habe das für einen Blog geschrieben, den ich vor langer Zeit hatte, als ... es nicht mehr im Web war, also ... hier ist es! ::
Wie schreibe ich eine Suchmaschine
Darren Rowse von probolgger.net veranstaltet ein Gruppenschreibprojekt zu allen "How to". Dies ist einer der wenigen Blogs, die ich regelmäßig lese, also überlege ich mir, warum ich zur Abwechslung nicht etwas Lesenswertes schreibe, sondern meine übliche gewalttätige Schimpfe, bei der ich am Ende drohen werde, Hugo Chaves in die Kehle zu stechen.
Ich beschloss, "Wie man eine Suchmaschine schreibt" zu schreiben. Ich habe dieses Thema aus zwei Gründen gewählt:
Mein Kunde ist ein Online-Händler von beträchtlicher Größe, daher durchsuche ich nicht das gesamte Web, sondern nur die Website, insbesondere nur die Produkte, die auf seiner Website zum Verkauf angeboten werden. Nichtsdestotrotz können dieselben Techniken zum Schreiben komplexerer Techniken zum Durchsuchen des Internets verwendet werden. Ich weiß, dass dies kein Tech-Blog ist, daher werde ich mich nicht zu sehr mit den technischen Details befassen und auch nicht über die Anforderungen an Hardware \ Prozessorleistung oder Web-Crawlen sprechen.
Ich benutze eine ziemlich einfache Technik, ich habe eine Tabelle (tblKeywords) mit drei Feldern:
Als erstes sammle ich einzelne Wörter an jedem relevanten Ort. Für meinen Kunden werde ich Wörter aus der Produkttabelle ziehen. Speziell aus den Feldern Itemid, ItemName, ItemShortDescription, ItemLongDescription, Hersteller, ManufacturerSKU, Kategorie1, Kategorie2, Kategorie3 usw. Wenn Sie Webseiten indizieren, können Sie Daten aus dem Seitentext, dem Seitentitel, der URL oder Links auf anderen Seiten abrufen, die auf die zu indizierende Seite verweisen.
Der Gewichtswert wird dadurch bestimmt, woher das Schlüsselwort stammt. In meinem Fall würde beispielsweise die SKU der Artikelherstellung eine Gewichtung von 100 erhalten, während ein Wort aus dem Artikelnamen eine Gewichtung von 25 erhalten könnte. Ein Wort aus der ItemLongDescription kann eine Gewichtung von 5 erhalten. Wenn Sie Webseiten indizieren, werden die Wörter Der Seitentitel kann eine Gewichtung von 75 erhalten, während ein fettgedrucktes Wort aus dem Seitentext eine Gewichtung von 10 erhalten kann. Wenn ein Wort mehr als einmal oder \ und an mehr als einer Stelle wiederholt wird, addieren Sie die Gewichtung jedes Mal es passiert. Beispiel: Wenn das Wort "Shirt" für ItemId = 12345 von zwei Stellen stammt, The ItemName (Gewicht 25) und zweimal in ItemLongDescription (Gewicht 5 x2 = 10) vorkommt, hat das Wort "Shirt" für ItemId ein Gesamtgewicht von 35 = 12345.
Wenn jemand nach "rosa Hemd" sucht, durchsuche ich meine Tabelle nach allen Instanzen der Wörter "rosa" oder "Hemd" und summiere die Gewichte. Anzeigen der Artikel mit dem höchsten Gesamtgewicht oben.
SQL:
Hier haben Sie es also, eine einfache (und schnelle) Suchmaschine. Natürlich gibt es noch mehr zu tun, z. B. Interpunktion, HTML-Code und wertlose Schlüsselwörter wie "und", "wenn", "oder". Dies betrifft nicht die Suche nach Schlüsselphrasen. Sie können jedoch ein ähnliches System für Phrasen verwenden, wenn Sie herausfinden können, wo sie beginnen und enden.
quelle
Suchmaschinen basieren auf Webcrawlern . Sie müssen herausfinden, wie einer dieser Trottel erstellt wird, bevor Sie eine Website entwickeln können, auf der die Ergebnisse angezeigt werden (dazu benötigen Sie eine schnelle und effiziente Datenbank).
quelle
Der frei verteilte Entwurf der Einführung in das Abrufen von Informationen wird Ihr Hauptreferenzmaterial sein. Es behandelt die Suche (Informationsabruf) von der Grundstufe bis zur fortgeschrittenen Stufe.
quelle
Erstellen einer Suchmaschine
Dies ist ein Einführungskurs in CS, der am 20. beginnt. Ich schlage vor, Sie probieren ihn aus. Er wird kostenlos angeboten.
quelle