2009-08-01 9 views
0

Ich habe versucht, diese Suchmaschine für eine MySQL-Datenbank zu machen. Das Eingeben von Benutzereingaben ist kein Problem, Datenbankabfragen sind auch in Ordnung.Suchmaschinen-Probleme

Eine Sache, ich brauche dies herauszufinden:

Ich bin ein String in der Datenbank

Wie kann ich den Eingang „AM“ entsprechen, aber den gleichen Fall halten? Es gibt PHP-Funktionen wie str_ireplace oder preg_replace/eregi_replace, aber was ich tun muß geteilt wird, um die Zeichenfolge nach jedes genau Spiel (als separates Wort, so nicht match „LAMB“ nur „am“).

Das ist so, damit ich die Übereinstimmungen hervorheben kann. Auch ich brauche, um herauszufinden, wie man dynamisch einen String zu verkürzen, sondern halten, wo Spiele in der Mitte sind:

... dieser Teil der Zeichenfolge ist, wo ...

und tun dies nach zu Schriftgröße von Benutzer in einem beliebigen Browser festgelegt. Ich hatte einen, der nur in WebKit funktioniert, aber das ist nicht gut. Bitte antworte mit etwas wie PHP oder Python, ich bin kein Hardcore-Typ.

Antwort

4

Ich schlage vor, Sie lesen diesen

http://dev.mysql.com/doc/refman/5.1/en/fulltext-search.html

Es kann Ihnen helfen, eine bessere Suchmaschine zu bauen und wahrscheinlich einen Teil Ihrer Frage

Hier beantworten ist ein gutes Beispiel dafür, was man tun könnte:

mysql> SELECT id, body, MATCH (title,body) AGAINST 
    -> ('Security implications of running MySQL as root' 
    -> IN NATURAL LANGUAGE MODE) AS score 
    -> FROM articles WHERE MATCH (title,body) AGAINST 
    -> ('Security implications of running MySQL as root' 
    -> IN NATURAL LANGUAGE MODE); 
 
    +----+-------------------------------------+-----------------+ 
    | id | body        | score   | 
    +----+-------------------------------------+-----------------+ 
    | 4 | 1. Never run mysqld as root. 2. ... | 1.5219271183014 | 
    | 6 | When configured properly, MySQL ... | 1.3114095926285 | 
    +----+-------------------------------------+-----------------+ 
    2 rows in set (0.00 sec)