Qual è "la via giusta" per effettuare la ricerca su un sito web?

5

Sto parlando del tipo di ricerca che suggerisce automaticamente la tua query mentre scrivi, come fa Google, come fa Wikipedia, come Stack Exchange suggerisce altre domande mentre scrivi il titolo, ecc. E Wikipedia era abituata a avere un'implementazione di ricerca orribile , per quelli di noi che ricordano. Non aveva auto-suggerimento, è stato chiuso con il minimo errore o errore di battitura e raramente ha dato risultati pertinenti.

Come programmatore web amatoriale, sto cercando di capire come implementare un efficace e performante search-and-auto-suggerimento come Wikipedia ora ha, e come SE ha, e come molti altri siti web hanno .

Come puoi ottenere quel tipo di prestazioni e flessibilità incredibilmente veloci? Ognuno lo limita o ci sono principi, linee guida, librerie utili o altre risorse simili per aiutarti a farlo correttamente nello stile di "Internet del futuro"?

    
posta temporary_user_name 24.01.2013 - 09:09
fonte

1 risposta

6

Per cominciare avrai bisogno di un motore di ricerca full-text come Apache Solr o Sphinx (ce ne sono di più e alcuni database hanno anche funzionalità full-text, ma so che questi due sono gratuiti e funzionano alla grande). Se ha la ricerca di facet (come Solr) questo sarà di grande aiuto (per alcuni tipi di query). Questo coprirà la maggior parte dei problemi di indicizzazione e prestazioni.

Da lì in poi devi analizzare i tuoi dati e le esigenze di ricerca dei tuoi clienti e trovare una buona configurazione di campi, tipi di campi, pesi di campo e problemi specifici di ricerca del testo come lo stemming o più lingue, gestione di speciali personaggi, dividendo le parole composte in parole singole (molto importante per la ricerca tedesca, possiamo concatenare arbitrariamente le parole qui).

Inoltre puoi fare un sacco di statistiche come contare le parole o le frasi che gli utenti cercano e confrontarle con le statistiche dei dati dell'indice (ad esempio per scoprire quali sinonimi sono rilevanti per te)

    
risposta data 24.01.2013 - 09:24
fonte

Leggi altre domande sui tag