Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Integrieren der Suche auf einer Website, deren Backend MYSQL ist

Um Ihre Punkte anzusprechen:

  1. Die Verwendung von %input% ist sehr schlecht . Dadurch wird bei jeder Abfrage ein vollständiger Tabellenscan durchgeführt. Bei jeder Last oder sogar bei einem entfernt großen Datensatz wird Ihr DB-Server ersticken.

  2. Ein RDBMS allein ist dafür keine gute Lösung. Sie suchen an der richtigen Stelle, wenn Sie nach einer separaten Lösung für die Suche suchen. Etwas, das gut mit Ihrem RDBMS kommunizieren kann, ist gut; Etwas, das in einem RDBMS läuft, wird nicht das tun, was Sie brauchen.

  3. Die Volltextsuche in MySQL ist für sehr einfache Stichwortsuchen geeignet, mehr nicht. Der Umfang der Nützlichkeit ist äußerst begrenzt – Sie benötigen ein äußerst vorhersehbares Nutzungsmodell, um die integrierte Suche zu nutzen. Es heißt "Suche", aber es ist nicht wirklich eine Suche, wie die meisten Leute es sich vorstellen. Verglichen mit der Qualität der Suchergebnisse, die wir von Google und Bing gewohnt sind, ist sie nicht vergleichbar. In diesem Sinne des Wortes "Suche" ist es etwas anderes - wie Notepad vs. Word. Beide sind Dinge zum Eintippen, aber das war es auch schon.

Was separate Systeme zur Handhabung der Suche betrifft, ist Lucene sehr gut. Lucene funktioniert im Wesentlichen so, wie Sie es möchten. Sie können damit programmgesteuert interagieren, um indexierbare Dokumente einzufügen. Ebenso eine Google Appliance (nicht Google Custom Search ) können direkte Meta-Feeds bereitgestellt werden, die alles verfügbar machen, was Sie indizieren möchten, z. B. Daten direkt aus einer Datenbank.