Я бы предложил, чтобы DBISAM, или теперь, вероятно, их более новая ElevateDB, была решительно рассмотрена. Из вашего предыдущего опыта, я думаю, вы знаете, что он не добавляет большого размера вашему исполняемому файлу, является достаточно быстрым, надежным, совершенным решением на основе Delphi и имеет отличную поддержку. За прошедшие годы их диалект SQL был усовершенствован, и теперь он очень хорош с высокой степенью соответствия ANSI SQL-2003.
DBISAM / ElevateDB, как вы заметили, не является открытым исходным кодом, но стоимость лицензирования указана только для одного разработчика (не для развертывания), поэтому, если задействовано всего несколько разработчиков, стоимость (на мой взгляд) незначительна. Стоимость лицензирования особенно разумна, если учесть уровень поддержки и отзывчивости, который вы получаете в группах новостей DBISAM / Elevatesoft, где основной разработчик / владелец (Тим Янг) активно участвует в ответах на вопросы и решении проблем. Помимо стоимости проприетарного решения, конечно же, существует обеспокоенность по поводу того, выживет ли бизнес и будет ли продукт развиваться и поддерживаться в будущем. Это то, что вы должны взвесить для себя, но развитие кажется таким же сильным, как и всегда. У них есть провайдеры .NET для их баз данных, и они поддерживают кроссплатформенную разработку с FreePascal / Lazarus.
Одним из плюсов полнотекстового поиска в DBISAM является то, что он тесно интегрирован в SQL. То есть вы можете выполнить одну инструкцию SELECT, которая напрямую объединяет обычные критерии WHERE в одних полях с критериями полнотекстового поиска в других. В зависимости от ваших потребностей, это хорошая функция, которая делает действительно простым и быстрым выполнение некоторых вещей, которые потребовали бы больше работы с использованием другого полнотекстового решения. Я думаю, что большинство дополнительных решений, таких как Lucene и другие, которые могут использоваться с Firebird, не так тесно интегрированы с обычным SQL и ограничивают вас получением набора записей только с полнотекстовыми критериями. Что-то вроде проприетарной надстройки Textolution для Firebird (http://www.textolution.com/ftsib_example.asp) похоже на то, что она может вместить создание одного сложного (вложенного) запроса, который будет применять как обычный, так и полнотекстовый критерии, но DBISAM делает это более элегантно. И добавление проприетарной надстройки в любом случае, в отношении db с открытым исходным кодом побеждает цель перехода на открытый исходный код.
Одним из недостатков полнотекстового поиска DBISAM / ElevateDB, я думаю, является то, что он поддерживает только использование условий «И» и «ИЛИ», не имеет поиска по близости.
Я заметил, что существует полнотекстовое решение для SQLite, http://www.sqlite.org/cvstrac/wiki?p=FullTextIndex. Я никогда не использовал SQLite, но я знаю, что многим это нравится. Я уверен, что DBISAM / Elevatesoft имеет большое преимущество в области многопользовательских приложений, где требуется надежная блокировка, хотя это не обязательно будет иметь какой-либо вес для однопользовательского настольного приложения.