Qualcuno può indicarmi la giusta direzione? Non ho davvero esperienza di scrittura del codice, ma sono uno studente veloce. Non sto cercando di dire che sarà facile, ma spero che qualcuno possa aiutarmi ...
Qualcuno può indicarmi la giusta direzione? Non ho davvero esperienza di scrittura del codice, ma sono uno studente veloce. Non sto cercando di dire che sarà facile, ma spero che qualcuno possa aiutarmi ...
Ho scritto questo per un blog che avevo sempre indietro quando .... non è più sul web quindi .. eccolo qui! :
Come scrivere un motore di ricerca
Darren Rowse su probolgger.net sta tenendo un progetto di scrittura di gruppo su qualsiasi cosa "come fare". Questo è uno dei pochi blog che leggo regolarmente, quindi immagino perché non scrivere qualcosa che valga la pena di leggere per un cambiamento, piuttosto il mio solito rant violento in cui finirò col minacciare di pugnalare Hugo Chaves alla gola.
Ho deciso di scrivere "Come scrivere un motore di ricerca". Ho scelto questo argomento per due motivi:
Il mio cliente è un rivenditore online di dimensioni significative, quindi non sto cercando nell'intero web solo il loro sito, in particolare solo i prodotti in vendita sul loro sito. Nondimeno, le stesse tecniche possono essere utilizzate per scrivere quelle più complesse utilizzate per la ricerca su Internet. So che questo non è un blog di tecnologia, quindi non approfondirò gli aspetti tecnici, né parlerò di requisiti di alimentazione dell'elaborazione dell'hardware o di web crawling.
Sto usando una tecnica abbastanza semplice, ho tabella (tblKeywords) con tre campi:
La prima cosa che faccio è raccogliere singole parole da qualsiasi posto che sia rilevante. Per il mio cliente tirerò le parole sulla tabella dei prodotti. Specificamente dai campi Itemid, ItemName, ItemShortDescription, ItemLongDescription, Manufacturer, ManufacturerSKU, Category1, Category2, Category3 ect. Se stai indicizzando le pagine web puoi estrarre i dati dal testo della pagina, dal titolo della pagina, dall'URL o dai link su altre pagine che rimandano alla pagina che viene indicizzata.
Il valore del peso è determinato da dove proviene la parola chiave. Ad esempio, nel mio caso l'SKU dell'articolo di fabbricazione otterrebbe un peso di 100, mentre una parola dal nome dell'articolo può avere un peso di 25. Una parola da ItemLongDescription può ottenere un peso di 5. Se stai indicizzando le pagine web le parole dal titolo della pagina si può ottenere un peso di 75 mentre una parola in grassetto dal testo della pagina può avere un peso di 10. Se una parola viene ripetuta più volte o \ e in più di una posizione si sommerà il peso per ogni volta capita. Ad esempio Se la parola "Shirt" proviene da due posizioni per ItemId = 12345, The ItemName (peso di 25) e appare due volte in ItemLongDescription (peso di 5 x2 = 10) la parola "shirt" avrebbe un peso totale di 35 per ItemId = 12345.
Se qualcuno cerca una "maglietta rosa" cerco il mio tavolo per tutte le occorrenze delle parole "Rosa" o "Camicia" e Total i pesi. Mostra gli articoli con il peso totale più alto in cima.
SQL:
Select Itemid, sum(weight) as totWeight from tblKeywords
group by itemId having keyword in ('pink','shirt')
Quindi qui ce l'hai, un motore di ricerca di base (e veloce). Naturalmente c'è ancora molto da fare, come la punteggiatura, il codice HTML e le parole chiave senza valore come "e", "se", "o". Questo non risolve la ricerca di frasi chiave, ma puoi utilizzare un sistema simile per le frasi se riesci a capire dove iniziano e terminano.
I motori di ricerca sono basati su crawler web , dovrai capire come costruire uno di questi ventosi prima di te puoi sviluppare un sito Web per visualizzarne i risultati (avrai bisogno di un database veloce ed efficiente per utilizzarlo).
La bozza liberamente distribuita di Introduzione al recupero delle informazioni sarà il tuo materiale di riferimento principale . Gestisce la ricerca (recupero di informazioni) dal livello base a quello avanzato.
Creazione di un motore di ricerca
Questo è un corso introduttivo a CS che inizierà il 20, ti suggerisco di dare un'occhiata, è offerto gratuitamente.
Leggi altre domande sui tag search-engine