Recientemente me encontré irritando las limitaciones de los motores de indexación de documentos. Estaba desarrollando un sitio web pequeño que necesitaba algunas capacidades de búsqueda bastante robustas, pero debido a sus limitaciones de hardware no pude implementar una solución Lucene-ish (como Solr o ElasticSearch, como normalmente lo haría) para manejar esta necesidad.
E incluso entonces, aunque necesitaba presentar algunos datos y cálculos complejos que requerían una gran cantidad de bases de datos, no necesitaba manejar más de 250 mil registros potenciales. Implementar una instancia completa de Solr o ES solo para manejar esto parecía un desperdicio.
Después de pensarlo, parece un problema bastante grande. La mayoría de las personas maneja los requisitos de búsqueda únicamente con SQL. Simplemente ejecutan consultas SQL para sus datos y eso es todo. Sus capacidades de búsqueda también terminan siendo terribles.
Hacer una búsqueda general de comodines de texto completo puede ser muy lento en algunos sistemas (hosts compartidos en particular) y atascar su base de datos, especialmente si tiene consultas complicadas y muchas uniones.
Terminas haciendo múltiples consultas en una sola solicitud del usuario. Puede solucionar esto con consultas cada vez más complicadas, pero vea el punto anterior.
Falta de características típicamente presentes en los motores de texto completo.
Las bases de datos tenían el mismo problema de necesitar ser implementadas como un servidor y luego apareció SQLite y de repente pudimos implementar una base de datos que está contenida en un solo archivo. Mi búsqueda en Google no ha producido nada; me pregunto si existe algo como esto para la indexación / búsqueda de texto completo.
¿Qué factores hay que tener en cuenta al decidir si implementar una indexación de documentos ligera (por ejemplo, como se explica en las respuestas a otra pregunta ) o seguir usando SQL para estas situaciones?