Jos halusin rakentaa hakukoneen, miten aloitan? [suljettu]

vastaus

Kirjoitin tämän blogilla minulla oli tapana palata, kun …. se ei enää ole verkossa niin .. tässä se on! :

Hakukoneen kirjoittaminen

Darren Rowse osoitteessa probolgger.net järjestää ryhmäkirjoitusprojektin kaikesta ”miten”. Tämä on yksi harvoista blogeista, joita luen säännöllisesti, joten ymmärrän, miksi en kirjoittaisi jotain lukemisen arvoista muutokseksi, pikemminkin tavalliseksi väkivaltaiseksi äänimerkkini, jossa lopulta uhkaan puukottaa Hugo Chavesia kurkkuun. > Päätin kirjoittaa ”Kuinka kirjoittaa hakukone”. Valitsin tämän aiheen kahdesta syystä:

  1. Verkossa ei ole paljon hyviä tietoja.
  2. Kirjoitan parhaillaan yhtä asiakkailleni.

Asiakkaani on merkittävän kokoinen verkkokauppias, joten en etsi koko verkosta vain heidän sivustoaan, tarkemmin sanottuna vain sivustossa myytäviä tuotteita. Samoja tekniikoita voidaan kuitenkin käyttää monimutkaisemman kirjoittamiseen Internetissä etsimiseksi. Tiedän, että tämä ei ole tekninen blogi, joten en aio mennä liian syvälle teknisiin yksityiskohtiin, enkä keskustele laitteisto- / prosessointitehovaatimuksista tai verkkojen indeksoinnista.

Käytän melko yksinkertaista tekniikkaa , Minulla on taulukko (tblKeywords), jossa on kolme kenttää:

  1. Itemid (jos teet verkkohakua, tämä olisi URL)
  2. KeyWord (indeksoitu avainsana)
  3. Paino (tämä on numeerinen arvo välillä 1-100, mitä suurempi tämä luku, sitä merkittävämpi (paino) avainsanalla on) * PK = Tuotetunnus + Avainsana

Ensinnäkin kerään yksittäisiä sanoja mistä tahansa asiaankuuluvasta paikasta. Asiakkaalleni vedän sanat tuotetaulukon. Erityisesti kentistä Itemid, ItemName, ItemShortDescription, ItemLongDescription, Manufacturer, ManufacturerSKU, Category1, Category2, Category3 jne. Jos indeksoit verkkosivuja, voit hakea tietoja sivutekstistä, sivun otsikosta, URL-osoitteesta tai muiden sivujen linkeistä, jotka linkittävät takaisin indeksoitavalle sivulle.

Painoarvo määräytyy sen mukaan, mistä avainsana on peräisin. . Esimerkiksi minun tapauksessani Tuotteen ”Valmistus” SKU saisi painon 100, kun taas Sana Tuotteen nimestä voi saada painon 25. Sana Tuotteen LongDescription -sivulta voi saada painon 5. Jos indeksoit verkkosivut, sivun otsikossa olevat sanat voivat saada painon 75, kun taas lihavoitu sana sivun tekstistä voi saada painon 10. Jos sana toistetaan useammin kuin kerran tai \ ja useammassa kuin yhdessä paikassa, lisäät paino joka kerta, kun se tapahtuu. Esimerkki Jos sana ”paita” tulee kahdesta kohdasta kohtaan ItemId = 12345, Tuotteen nimi (paino 25) ja se näkyy kahdesti ItemLongDescription-muodossa (paino 5 x2 = 10), sanan ”paita” kokonaispaino olisi 35 ItemId: lle. = 12345.

Jos joku tekee haun ”vaaleanpunainen paita”, etsin taulukostani kaikki sanat ”vaaleanpunainen” tai ”paita” ja painot yhteensä. Näytetään korkeimman kokonaispainon omaavat tuotteet.

SQL:

Select Itemid, sum(weight) as totWeight from tblKeywords group by itemId having keyword in ("pink","shirt") 

Joten sinulla on se, perus (ja nopea) hakukone. Tietysti on enemmän tekemistä, kuten välimerkkien poistaminen, HTML-koodi ja arvokkaat avainsanat, kuten ”ja”, ”jos”, ”tai”. Tämä ei osoita avainsanailmoituksia, mutta voit käyttää samanlaista järjestelmää lauseisiin, jos pystyt selvittämään, mistä ne alkavat ja loppuvat.

kommentit

  • kiitos kivasta vastauksesta. mitä ehdotat myös tuotteiden ryhmittelylle. Tarkoitan, että sinulla on miljoona indeksoituja tuotesivuja eri verkkosivustoilta. haluat ryhmitellä samat tuotteet eri verkkosivustoille: programers.stackexchange.com/questions/134292/…
  • @Monster – Entä tuote ' s Manufacturer \ SKU Combination?
  • Voit myös ostaa (vuokrata) tietoja yrityksiltä, kuten Käytä
  • voitko selittää sitä hieman enemmän, koska en saanut sitä. Kiitos.
  • Käytännön vastaus " ok ". Tämä jättää kuitenkin huomiotta koko tutkimusalueen eli " tiedonhaku ". " oikeaan suuntaan osoittaminen " IR olisi ollut mielestäni parempi.

vastaus

Johdatus tiedonhakuun vapaasti jaettu luonnos on olla tärkein referenssimateriaalisi. Se hoitaa haun (tiedonhaku) perustasolta edistyneelle tasolle.

Vastaus

Hakukoneet perustuvat indeksointirobotit , sinun on selvitettävä, miten yksi näistä imurista rakennetaan, ennen kuin voit kehittää verkkosivuston sen tulosten näyttämiseksi (tarvitset nopean ja tehokkaan tietokannan mene sen mukana.).

Kommentit

  • Hakukone saattaa kuluttaa indeksointirobotin lähdön, mutta muuten heillä on hyvin vähän tekemistä kunkin kanssa muut. Lisäksi SQL-lajikkeen nopea ja tehokas tietokanta ei todennäköisesti auta paljon tässä pyrkimyksessä. Hakukoneet rakennetaan yleensä käänteisten tiedostojen indeksointijärjestelmien avulla, jotka eivät ' sovi ollenkaan SQL-muottiin.
  • @Marcelo Cantos: Käänteisten tiedostojen indeksointi kuulostaa monimutkaiselta: -0 – Kiitos vastauksen selventämisestä!

Vastaa

Hakukoneen rakentaminen

Tämä on CS: lle perehdyttävä kurssi, joka alkaa 20. päivänä. Ehdotan, että tutustut siihen, sitä tarjotaan ilmaiseksi. .

Kommentit

  • Sebastian Thrun liittyy läheisesti myös Googleen.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *