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