web-dev-qa-db-fra.com

Moteur de recherche Lucene vs Base de données Recherche

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?

38
Santosh Linkha

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é.

30
Yuval F

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:

  • Pour le développeur - Outils pour analyser, analyser et index Informations textuelles (par exemple stemming, pluriels, synonymes, tokénisation) dans plusieurs langues. Lucene échoue très bien pour la recherche de texte.
  • Pour l'utilisateur - Résultats de la recherche de qualité. Lucene utilise une très bonne fonction de similarité (pour comparer la requête de recherche contre chaque document), au cœur de laquelle la similarité des cosinus et la fréquence de trimestre/document inverse. Cela se traduit par de bons résultats de recherche avec très peu de peaufie requise.

Beaucoup de informations utiles sur Lucene ici .

25
Joel

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.

2
Eugeniu Torica

La recherche Lucene a un avantage d'indexation. Ceci Post peut vous aider à comprendre Lucene.

1
Harry Joy