Sugeriría que DBISAM, o ahora probablemente su más nuevo ElevateDB, se debe considerar seriamente. De su experiencia previa, espero que sepa que no agrega mucho tamaño a su ejecutable, es una solución basada en Delphi razonablemente rápida, confiable y perfecta, y tiene un excelente soporte. Con los años, su dialecto SQL se ha perfeccionado, por lo que ahora es muy agradable con un alto grado de cumplimiento ANSI SQL-2003. DBISAM/ElevateDB es como usted nota no de código abierto, pero el costo de la licencia es por desarrollador solamente (no por despliegue) así que si solo hay unos pocos desarrolladores involucrados, el costo es (en mi opinión) insignificante.El costo de la licencia es especialmente razonable si se tiene en cuenta el nivel de soporte y capacidad de respuesta que se obtiene en los grupos de noticias DBISAM/Elevatesoft, donde el desarrollador/propietario principal (Tim Young) participa activamente respondiendo preguntas y resolviendo problemas. Además del costo de una solución patentada, también existe la preocupación de si la empresa sobrevivirá y si el producto continuará desarrollándose y admitiéndose en el futuro. Eso es algo que tiene que sopesar, pero el desarrollo parece tan fuerte como siempre. Tienen proveedores .NET para sus bases de datos, y admiten el desarrollo multiplataforma con FreePascal/Lazarus.
Una ventaja de la búsqueda de texto completo de DBISAM es que está estrechamente integrada en el SQL. Es decir, puede emitir una sola instrucción SELECT que combine directamente criterios WHERE ordinarios en algunos campos con criterios de búsqueda de texto completo en otros. Dependiendo de sus necesidades, esta es una buena característica que hace que sea realmente simple y rápido hacer algunas cosas que requerirían más trabajo usando una solución de texto completo diferente. Creo que la mayoría de las soluciones complementarias, como Lucene y otras que pueden usarse con Firebird, no se integran tan de cerca con SQL normal y lo restringen a recuperar un conjunto de registros con criterios de texto completo solamente. Algo parecido al complemento patentado de Textolution para Firebird (http://www.textolution.com/ftsib_example.asp) parece que podría acomodar la construcción de una consulta compleja única (anidada) que aplicaría criterios de texto completo y regular, pero DBISAM lo hace de forma más elegante. Y agregar un complemento propietario a un tipo de fuente abierta db, de alguna manera, derrota el propósito de ir a la fuente abierta.
Una de las deficiencias de la búsqueda de texto completo de DBISAM/ElevateDB, creo, es que solo admite el uso de las condiciones 'Y' y 'O', no tiene ninguna búsqueda de proximidad.
Me di cuenta de que hay una solución de texto completo para SQLite, http://www.sqlite.org/cvstrac/wiki?p=FullTextIndex. Nunca he usado SQLite, pero sé que mucha gente lo ama. Un área donde estoy bastante seguro de que DBISAM/Elevatesoft tiene una gran ventaja es en aplicaciones de múltiples usuarios donde se requiere una funcionalidad de bloqueo robusta, aunque eso no necesariamente tiene ningún peso para la aplicación de escritorio de un solo usuario.
1 Estoy muy interesado en lo que sale. –
Escuché el podcast, me gustaría ir con firebird, y tal vez un lucene (el lucene de Java, o dotlucene) como un FTS (Delphi puede vincular a cualquier cosa). Firebird permitiría alguien para usar el db completo o incrustado (fb completo con múltiples usuarios puede ser interesante ...) –