J'utilise une base de données MySQL et utilisez la recherche sur la base de données. Des avantages et des inconvénients des moteurs de base de données et du moteur de recherche Lucene? J'aimerais avoir des suggestions sur quand et où les utiliser?
Je vous suggère de lire Moteurs de recherche de texte complètes vs. DBMS . Un one-liner serait: si la majeure partie de votre cas d'utilisation est une recherche de texte intégral, utilisez Lucene. Si la majeure partie de votre cas d'utilisation est jointe et d'autres opérations relationnelles, utilisez une base de données. Vous pouvez utiliser une solution hybride pour un étui d'utilisation plus compliqué.
Utilisez Lucene quand vous souhaitez indexer Textual Documents (de n'importe quelle longueur) et recherchez Texte Dans ces documents, renvoyer une liste de documents classés correspondant à la recherche mettre en doute. L'exemple classique est des moteurs de recherche, comme Google, qui utilise des indexateurs de texte comme Lucene pour indexer et interroger le contenu des pages Web.
Les avantages de l'utilisation de Lucene sur une base de données comme MySQL, pour l'indexation et la recherche de texte sont les suivants:
Beaucoup de informations utiles sur Lucene ici .
Nous avons utilisé SQL Server au travail pour effectuer des questions qui ont utilisé une recherche complète. En cas de grandes quantités de données SQL, une jointure interne entre le jeu de résultats renvoyé par la recherche FullText et le reste de la requête qui pourrait être lente si la base de données s'exécute sur la machine à propulsion basse (2 Go de RAM pour 20 Go de données). Changer la même requête à Lucene améliore considérablement la vitesse.
La recherche Lucene a un avantage d'indexation. Ceci Post peut vous aider à comprendre Lucene.