Hur man gör en sökmotor i PHP och MySQL

Varför skulle du vilja skapa en sökmotor? Det finns redan en sökmotor som styr dem alla. Du kan använda Google för att hitta nästan vad som helst på Internet och jag tvivlar på att du någonsin kommer att ha samma dator- och lagringskapacitet som den stora G.

Så varför då göra en egen sökmotor? – För att tjäna pengar såklart!

...och att bli känd som skaparen av nästa stora sökmotor eller för att du som programmerare eller ingenjör gillar utmaningar. Att skapa en sökmotor för det offentliga Internet är knepigt och om du är som jag gillar du att lösa knepiga problem.

Den tredje applikationen är en anpassad, höghastighetswebbplatssökning för din webbplats med tusentals sidor. En indexerad sökmotor kommer att vara mycket snabbare än en fulltextsökfunktion och om Googles webbplatssökning inte är tillräckligt flexibel för din webbplats kan du skapa din egen sökfunktion.

SÖKNINGENS GRUNDLÄGGANDE

Grunden för alla STORA sökmotorer är ett ord till webbsida index, i princip en lång lista med ord och hur väl de relaterar till olika webbsidor.

För att skapa en sökmotor måste du göra fyra saker:

* Bestäm vilka sidor som ska hämtas och hämta dem
* Analysera ord, fraser och länkar från sidangoogle-anpassad-se
* Ge en poäng till varje sökord eller nyckelfras som anger hur väl frasen relaterar till de sidorna och lagra poängen i sökmotorindex
* Tillhandahålla ett sätt för användare att fråga efter indexet och få en lista över matchande webbsidor

Detta är inte svårt för en erfaren programmerare. Det kan göras på en dag om du kan reguljära uttryck och har viss erfarenhet av HTML och databaser.

Nu har du en fungerande sökmotor, lägg bara till en massa datorer och hårddiskar så kommer du snart att indexera hela Internet. Om du inte är beredd att gå så långt kommer en disk på en terabyte hålla ett index på cirka 50 miljoner sidor.

HUR MAN GÅR SIDOR

Efter att ha slutfört grundläggande sökfunktioner återstår mycket arbete innan någon kommer att vilja använda din nya maskin. Ett index räcker inte. Det som är utmanande är hur man poängsätter sidor för att ge slutanvändaren de sökresultat som är mest relevanta för hans uppfattning om vad hi söker efter.

Du måste bestämma hur mycket vikt du ska lägga på sökorden i taggen, beskrivningen och huvudwebbsidans innehåll. För att göra bra poäng vill du också öka sökorden som finns i webbadressen till sidan och kontrollera ankartexten för inkommande länkar. Att hålla reda på inkommande länkar är det mest användbara och mest utmanande av ovanstående, du måste ha en separat databastabell med information om alla länkar mellan sidor du indexerar.

VAD SKALL INDEXERA OCH INTE INDEXERAS

Andra hinder du kommer att hitta när du börjar indexera riktigt internetinnehåll är det faktum att det finns slöseri med värdelöst skräp överallt och så småningom kommer ditt index att bli fullt av spam, affiliate-sidor, parkerade domäner, pågående hemsidor utan innehåll, länk gårdar som används av sökmotoroptimerare, spegla webbplatser som använder dataflöden för att skapa tusentals sidor med produktlistor eller annat reproducerat innehåll etc, etc...

När du indexerar från Internet måste du hitta sätt att filtrera bort skräpinnehållet från det folk faktiskt läser och söker efter. Till att börja med kan du begränsa hur djupt in i underkataloger du genomsöker, hur många länkhopp från en domänindexsida du genomsöker och hur många länkar per webbsida som ska tillåtas.

PARSERAR WEBBPLATSER

Det finns en miljon sätt, både rätt och fel att skriva HTML och när du indexerar från Internet måste du hantera dem alla.

När du analyserar nyckelord från sidor behöver du inte bara hantera den fullständiga HTML-standarden utan också alla icke-standardiserade sätt som inofficiellt stöds av webbläsare.

För att kunna läsa alla sidor behöver du även analysera klientsidans javascript, hantera ramar, CSS och iframes.
Detta är en stor del av arbetet med en allmän sökmotor, för att kunna läsa alla möjliga sorters innehåll.

VARFÖR SÅ MÅNGA webbadresser?

Slutligen måste du ta itu med det faktum att många webbplatser har många webbadresser som pekar på samma webbsida. Titta bara på det här exemplet:

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

Alla dessa webbadresser pekar på samma webbsida. Om du inte gör en speciell kod för att hantera det kommer du snart att ha fyra resultat i din sökmotor (ett för varje webbadress) som alla går till samma sida. Användare kommer inte att gilla dig.
Det finns också möjlighet till frågesträngar där ett sessions-ID efter frågetecknet i URL:en kommer att skapa nästan oändliga URL:er för samma webbsida.

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

Till sökmotorn kommer det att finnas ett riktigt stort antal sidor som alla innehåller samma innehåll. Snabbfixet är naturligtvis att inte indexera sidor som innehåller en frågesträng. Eller för att ta bort frågesträngen från sidor. Detta fungerar men kommer också att ta bort mycket legitimt innehåll (tänk forum) från ditt index.

Du har nu all information du behöver för att göra en sökmotor för en webbplats. Om du letar efter en allmän sökmotor på Internet finns det mycket mer information du behöver inkludera. Som robots.txt, webbplatskartor, omdirigeringar, proxies, igenkännande av innehållstyper, avancerade rankningsalgoritmer samt hantering av terabyte med data. Jag kommer att täcka mer detaljer i en framtida artikel. Lycka till med ditt nästa sökmotorprojekt!

Kategorierblogg
  1. Pingback:Tweets som nämner TopTut.com – Top Tutorials » Hur man gör en sökmotor i PHP och MySQL -- Topsy.com

  2. Pingback:TopTut.com – Top Tutorials » Hur man gör en sökmotor i PHP … | Sökmotor marknadsföring online

Kommentarer är stängda.