Solo i miei 2 Iuro-cent.
Davo una occhiatina al codice dello spider, aggiornato per altro ad agosto quindi immagino sia stato già modificato... tuttavia...
Ho notato (riassumendo in termini spiccioli) che lo spider fa pressappoco questo:
Dato un url:
* Apre la pagina
* Ne verifica la presenza nel DB
* Salva/Aggiorna i contenuti nel DB
* Calcola il peso di ogni singola keyword di quel documento rispetto al DB ...
Ora il calcolo dell'algo di prova e del TF*IDF è un qualcosa che credo si dovrebbe delegare ad un ulteriore script.
Ritengo che lo spider debba sostanzialmente limitarsi a fare questo:
Dato un url:
* Apre la pagina
* Ne verifica la presenza nel DB
* Salva/Aggiorna i contenuti nel DB
* Salva/Aggiorna i link della pagina in una tabella dedicata (Es.: denominata spider)
* Segue l'url successivo della tabella 'spider' (e ricomincia daccapo)
Occorrerebbe poi uno script dedicato che periodicamente calcoli il peso delle key su tutto il DB e quindi consenta alle pagine (già indicizzate) di apparire nelle serp.
Vi confesso che ho dato solo una occhiata superficiale al codice (e non sono proprio una cima in php) ma poniamo il caso di 3 competitors:
il 1° ha una pagina che contiene la key parapacchio ovviamente questa parola non è contenuta nel DB, nel documento in esame la key ha un peso di 10/20*X/1 (DF è già ==1 perchè nel codice abbiamo if ($df ==0) $df = 1;) ... quindi lo spider arriva si fà i suoi conticini e assegna alla mia pagina per il termine "parapacchio" il valore di 2X
il 2° competitor ha un documento idealmente identico al 1°
parapacchio ha un peso identico al 1° competitor quindi 2X
il 3° competitor ha un documento idealmente identico ai primi 2
parapacchio ha un peso pari a 1X=(10/20 * X/2)
e questo solo perchè ha avuto la sfortuna di essere stato indicizzato dopo... invece con uno script dedicato si puo far si che periodicalmente si passino in rassegna tutte le key ed ogni pagina assume un valore giusto rispetto al resto.
Se ho detto cavolate, chiedo venia.