Vorrei creare un sito in cui gli utenti possano pubblicare articoli con le seguenti parti opzionali:
- Un titolo
- Contenuti (testo)
- Categorie
- Parole chiave
Gli articoli saranno archiviati in mongodb e il sito sarà compilato in node.js. Gli utenti possono cercare nel sito utilizzando una normale casella di testo di ricerca.
Sto pensando di creare le seguenti raccolte:
- Utenti
- Articoli
- Parole chiave
Creerò quindi una voce per ogni parola chiave utilizzata nella raccolta Parole chiave con una matrice contenente tutti gli articoli che la utilizzano. Se un utente effettua una ricerca, la ricerca viene suddivisa in parole chiave e ogni parola chiave viene cercata nella raccolta Parole chiave. Ogni articolo viene quindi recuperato dal db e classificato in base alla pertinenza.
Le mie domande sono:
- Sarebbe efficace usare una raccolta di parole chiave come questa, dovrei semplicemente usare la raccolta articoli (usando la ricerca full-text o qualcosa del genere) o dovrei strutturarla in qualche altro modo?
- In che modo incorporare la possibilità di cercare il titolo, i contenuti o le categorie per gli articoli anziché solo le parole chiave?
- Sarebbe meglio usare qualcosa come Apache Lucene piuttosto che costruire questa funzionalità da solo?