Halihallo kOorj
ich hab mir mal so ne kleine Suche gebastelt und die würde ich jetzt liebend gerne um ein feature erweitern. Und zwar soll der user seine suchstrings kombinieren können, ganz a la Google + co. mit "AND", "OR", "+", "-", etc. Nur wie geht das bitte möglichst ohne schier endlose Verschachtelungen von wegen if(preg_matach[...]) oder so. Google half mir ledier nicht weiter, da ich gar nicht richtig weiß wonach ich suchen soll.
Vorab: Das sind logische Operatoren und diese werden von Google nicht
unterstützt. Zudem hat if (preg_match()) mehr mit PHP denn einer Datenbank zu tun.
1. Frage: Was willst du nun? - Alles über PHP, oder über die
Datenbank umsetzen?
1.1 Falls letzteres: Welche Datenbank steht dir zur Verfügung?
Aha, MySQL wie ich eben gesehen habe. Fulltext-Index!
Glaube mir, es selber (gut) umzusetzen ist kein Kinderspiel...
2. Einfach wird das nicht... Eine Bool'sche Suche zu implementieren
ist nicht einfach, sogar sehr schwer, wenn sie auch in kurzer
Zeit ( => gute Performance) Ergebnisse ausspucken soll.
Es gibt mehrere Möglichkeiten eine derartige Suche umzusetzen, aber
zuerst will ich eine Antwort von dir hören, bis ich mir die Finger
wund tippe :-)
Kurz vorab:
http://dev.mysql.com/doc/mysql/en/Fulltext_Boolean.html
MySQL bietet dies von Haus aus, PostgreSQL IMHO auch.
Viele Grüsse
Philipp