Di recente mi sono trovato a sfregare contro i limiti dei motori di indicizzazione dei documenti. Stavo sviluppando un piccolo sito Web che aveva bisogno di capacità di ricerca abbastanza robuste ma a causa dei loro vincoli hardware non riuscivo a distribuire una soluzione Lucene (come Solr o ElasticSearch, come farei normalmente) per gestire questa esigenza.
E anche allora, mentre avevo bisogno di fornire alcuni dati complessi e calcoli che richiedevano un uso intensivo del database, non avevo bisogno di gestire oltre 250.000 potenziali record. L'implementazione di un'intera istanza Solr o ES solo per gestire ciò sembrava uno spreco.
Dopo averci pensato, sembra un problema abbastanza grande. Molte persone gestiscono i requisiti di ricerca esclusivamente con SQL. Eseguono solo query SQL per i loro dati e basta. Anche le loro capacità di ricerca finiscono per essere terribili.
Fare una ricerca jolly full-text coperta può essere dolorosamente lento su alcuni sistemi (in particolare gli host condivisi) e impantanare il database, soprattutto se hai query complicate e molti join.
Si finisce per fare più query su una singola richiesta da parte dell'utente. Potresti aggirare questo problema con query sempre più complicate, ma vedi il punto precedente.
Mancanza di funzionalità tipicamente presenti nei motori full-text.
I database avevano lo stesso problema della necessità di essere distribuiti come server e quindi è arrivato SQLite e improvvisamente abbiamo potuto distribuire un database autonomo in un singolo file. My Googling non ha prodotto nulla: chiedo se esiste qualcosa del genere per l'indicizzazione / ricerca full-text.
Quali fattori prendere in considerazione quando si decide se implementare l'indicizzazione di documenti leggeri (ad esempio, come spiegato nelle risposte a un'altra domanda ) o continuare a utilizzare SQL per queste situazioni?