du kannst mit mysql auch reguläre ausdrücke verwenden, um beispielsweise tags auszuschließen, allerdings ist das niemals performant, d.h. deine datenbank-abfragen werden mit der zeit immer langsamer.
bei der implementierung von such-algorithmen ist es eine gute idee, die daten, nach denen gesucht wird, vor der eigentlichen 'echten suche' so aufzubereiten, dass die suchfunktion es möglichst leicht hat, sinnvolle ergebnisse zu liefern. wenn du jedes mal über eine volle tabelle mit einem regulären ausdruck suchst, hat die suchfunktion immens viel zu tun.
besser: lies dich in das TF/IDF -system ein, es ist relativ leicht zu lernen und leicht umzusetzen und gibt sehr gute suchergebnisse.
das ganze erfordert ein paar zustätzliche tabellen, die nur für die suche zuständig sind (mit verständnis von tf/idf weißt du dann schon, was du brauchst).
die aktuellen daten, die bereits in der datenbank stehen, fügst du mit einem kleinen skript erstmal in die such-tabellen ein, und schreibst ein paar zusätzliche zeilen beim editieren, löschen und hinzufügen von einträgen, die die such-tabellen aktualisieren.
fertig ist ein schön performantes suchsystem.
je nach zeit und lust kannst du daran dann noch optimierungen wie stemming, caching und semantik-erkennung einbauen. |