Ho un sito web del dizionario cinese-inglese finito come progetto personale e funziona molto bene. Sto usando node / Express con node-dirty, che è un database JSON basato su file barebone che carica tutto in memoria all'avvio. Mentre continuo ad aggiungere più funzionalità, devo aggiornare continuamente i miei script di generazione del database (noiosa manipolazione delle stringhe) e i tempi di caricamento all'avvio del server sono un paio di minuti. Sono anche in futuro bisogno di implementare il paging.
Mi interessa potenzialmente passare a un database più tipico (MongoDB, ad esempio).
Essendo tutto è in-memory con node-dirty, faccio semplicemente un loop dell'intera cosa, controllo corrispondenze esatte o modifica distanza e sono a posto. Anche con 120.000 voci ci vogliono meno di 50ms (per un utente ovviamente).
Come si effettua una ricerca con un database tipico? Non sono sicuro di come restringere il set di risultati con le corrispondenze cinese / pinyin / inglese in una query o se dovessi memorizzare tutti i risultati nella memoria come faccio ora e analizzarli attraverso il lato del servizio.
Non mi interessa davvero "il modo in cui Google cerca su Internet" (né ho studiato algoritmi avanzati), ma una semplice soluzione sensata per un hobbista.