Megjegyzések
- Ha nincs ' tapasztalatod a kódírásról, mit szólnál ahhoz, ha megtanulnád először a kódolást? A keresőmotor felépítése egyfajta túlterhelés annak, aki új a programozásban.
- Ahogy Terence mondja, ez nem valami azok számára, akik újak a programozásban. Minden olyan keresőmotor, amely egyáltalán jó, általában meglehetősen bonyolult munka, ezért a Google olyan hatalmas, hogy nagyon nehéz feladatokat végeznek. Még a tapasztalt programozók is szívesebben használnak valami előre elkészített dolgot. Ha ötletet ad arra, hogy mire vágyik, akkor talán jó irányba terelhetjük.
- Kezdjen egy kisebb projekttel. A keresőmotor elkészítése hatalmas mennyiségű kódot igényel. És hogyan gyűjti össze az összes adatot a keresőmotorjához? ' sokkal több kódra és hatalmas infrastruktúrára lesz szüksége. Tényleg, kérjük, kezdjen kisebb projektekbe, és dolgozzon, különben csalódást okoz.
- Ez a könyv segített megértenem, hogy mik a keresőmotorok és hogyan épülnek fel: nlp.stanford.edu/IR-book
Válasz
Ezt egy blog nekem régen volt visszaút, amikor …. már nem az interneten, tehát .. itt van! :
Keresőmotor írása
Darren Rowse a probolgger.net webhelyen csoportírási projektet tart minden “Hogyan” témában. Ez egyike azon kevés blogoknak, amelyeket rendszeresen olvasok, így kitalálom, miért nem írok valami olyat, amit érdemes elolvasni egy változásért, inkább a szokásos erőszakos harsogásomat, ahol azzal fenyegetem, hogy Hugo Chaves torkát szúrom.
Úgy döntöttem, hogy a “Hogyan írjak egy keresőmotort” írok. Ezt a témát két okból választottam:
- Az interneten nincs sok jó információ erről.
- Jelenleg írok egyet az egyik ügyfelemnek.
Ügyfelem jelentős méretű online kiskereskedő, ezért nem az egész weben keresek csak a saját webhelyén, pontosabban csak a webhelyükön eladó termékek. Mindazonáltal ugyanazok a technikák használhatók az internetes kereséshez használt bonyolultabb módszerek írására is. Tudom, hogy ez nem egy technikai blog, ezért nem fogok túl mélyrehatóan belemenni a technikába, és nem is vitatom meg a hardver / feldolgozási teljesítmény követelményeit, vagy az internetes bejárást.
Elég egyszerű technikát használok , Három táblával rendelkező táblázatom van (tblKeywords):
- Itemid (ha webes keresést végez, ez URL lesz)
- KeyWord (indexelt kulcsszó)
- Súly (ez 1-100 közötti numerikus érték, minél nagyobb ez a szám, annál jelentősebb (súly) a kulcsszó) * PK = ItemID + KeyWord
Először azt csinálom, hogy minden helyről gyűjtsek egyes szavakat, amelyek relevánsak. Ügyfelemnek fogom húzni a termék táblázatot. Pontosabban a Itemid, ItemName, ItemShortDescription, ItemLongDescription, Manufacturer, ManufacturerSKU, 1. kategória, 2. kategória, 3. kategória stb. Mezőkből. Ha weboldalakat indexel, akkor adatokat gyűjthet az oldal szövegéből, az oldal címéből, az URL-ből vagy más olyan linkekről, amelyek visszavezetnek az indexelt oldalra.
A súlyértéket az határozza meg, hogy honnan származik a kulcsszó. . Például az én esetemben a „s Manufacture” termékváltozat súlya 100, míg a cikk nevéből származó szó súlya 25 lehet. A ItemLongDescription szója súlya 5 lehet. Ha indexel weboldalak, az oldal címéből származó szavak súlya 75 lehet, míg az oldal szövegéből félkövér szó 10 súlyt kaphat. Ha egy szót többször vagy \ és több helyen ismételnek meg, akkor összeadná a súlya minden egyes alkalommal, amikor előfordul. Például, ha a “Póló” szó két helyről származik a ItemId = 12345 értékre, az ItemName (25 súly) és kétszer jelenik meg a ItemLongDescription mezőben (5 x2 = 10 súly), akkor az “ing” szó össztömege 35 lenne az ItemId esetében. = 12345.
Ha valaki rákeres a “rózsaszín ing” kifejezésre, akkor a táblázatomban keresem a “Rózsaszín” vagy “Ing” szavak összes példányát és a súlyokat. A legnagyobb össztömegű elemek megjelenítése a tetején.
SQL:
Select Itemid, sum(weight) as totWeight from tblKeywords group by itemId having keyword in ("pink","shirt")
Tehát itt van, egy alap (és gyors) keresőmotor. Természetesen van még mit tenni, például törölni az írásjeleket, a HTML kódot és az értéktelen kulcsszavakat, például a “és”, “ha”, “vagy”. Ez nem a kulcsmondatok keresése, hanem hasonló rendszert használhat a kifejezésekhez, ha meg tudja találni, hol kezdődnek és hol végződnek.
Hozzászólások
- köszönöm a szép választ. mit javasolna a termékek csoportosítására is. úgy értem, hogy 1 millió feltérképezett termékoldala van különböző webhelyekről. ugyanazokat a termékeket szeretné csoportosítani különböző webhelyeken: programozók.stackexchange.com/questions/134292/…
- @Monster – Mi lenne a cikk ' s gyártó \ SKU kombinációval?
- Ezeket az adatokat olyan cégektől is megvásárolhatja (kölcsönözheti), mint Használat
- meg tudnád magyarázni még egy kicsit, mert nem értettem hozzá. Köszönöm.
- Egy " ok " gyakorlati válasz. Ez azonban figyelmen kívül hagyja az egész tanulmányozási területet, más néven " Információkeresés ". A " helyes irányba mutatás szempontjából " az IR jobb lett volna a fejemben.
Válasz
Az Bevezetés az információkereséshez szabadon terjesztett vázlata legyen a legfontosabb referenciaanyagod. Kezeli a keresést (információ visszakeresést) az alapszinttől az emelt szintig.
Válasz
A keresőmotorok a webrobotok , meg kell találnia, hogyan lehet felépíteni ezeket a balekokat, mielőtt kifejlesztene egy weboldalt annak eredményeinek megjelenítéséhez (gyors, hatékony adatbázisra lesz szüksége menj vele).
Megjegyzések
- A keresőmotor elfogyaszthatja a webrobot kimenetét, de egyébként mindegyikhez nagyon kevés köze van Egyéb. Ráadásul az SQL változat gyors és hatékony adatbázisa valószínűleg nem sokat segít ebben a törekvésben. A keresőmotorok általában fordított fájlindexelési sémák felhasználásával készülnek, amelyek egyáltalán nem illenek az SQL formához.
- @Marcelo Cantos: A fordított fájlindexelés bonyolultan hangzik: -0 – Köszönöm, hogy segítenek tisztázni a válaszomat!
Válasz
Ez egy bevezető tanfolyam a CS számára, amely 20-án kezdődik, javasoljuk, hogy nézze meg, ingyen kínál .
Megjegyzések
- Sebastian Thrun is szorosan kapcsolódik a Google-hez.