J'ai aussi récemment étudié des solutions de texte intégral. Il semble que SQLite n'a pas de choix de fait en ce moment. Peu importe ce que vous choisissez, il est inévitable que vous deviez le réorganiser au fur et à mesure que les différentes solutions FT2, FT3, etc. Alors mordez la balle et supposez que vous aurez besoin de faire plus de développement à l'avenir pour suivre le rythme de la technologie de texte intégral.
Sphinx Search n'a pas encore de support direct pour SQLite. Il ne supporte que MySQL et PostgreSQL (août 2009). Vous devrez donc pirater votre propre connecteur SQLite ou bien migrer des données SQLite vers MySQL ou PostgreSQL, puis indexer les données avec Sphinx Search. Je pense que quelqu'un travaille sur un correctif de Sphinx Search pour soutenir Firebird, alors peut-être que ce n'est pas si difficile si vous êtes prêt à retrousser vos manches.
Sachez également que Sphinx Search a certaines limitations concernant l'ajout incrémentiel de données à l'index. Vous devriez passer environ une heure à lire le document avant de décider de l'utiliser.
Je ne connais pas non plus de moyen direct d'indexer les données SQLite dans Lucene. Vous devrez probablement écrire votre propre code pour traiter des lots de données SQLite, en ajoutant des lignes à l'index Lucene un à la fois. Cela semble être l'utilisation de Lucene, peu importe ce que la base de données.
mise à jour:Solr est une grande technologie d'accompagnement pour Lucene. Solr donne à ce moteur de recherche de nombreuses fonctionnalités, y compris la possibilité de charger en bloc des données de résultats de requête à partir de n'importe quelle source de données JDBC.
Je pense que sqlite3 fts3 est préférable à toute solution externe. Moins de pièces mobiles. Passer de fts2 à fts3 ne peut pas être aussi difficile que d'intégrer Sphinx avec ses limitations de mise à jour ou d'autres solutions externes. –
@Seun: Je suis d'accord - un peu. Il est vrai que Sphinx Search nécessitait l'installation d'un autre logiciel, alors que fts3 est intégré à SQLite. Cependant, fts3 n'est pas intégré dans les versions par défaut, vous devez donc recompiler SQLite vous-même. Et fts3 est un type * table virtuelle *, vous devez faire une copie manuelle des données de la table source à la table fts3 indépendamment. Il y a des pièces mobiles, peu importe comment vous le faites. –
FTS3 faisait partie de la DLL officielle, tout comme FTS4 maintenant. –