PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Volltextsuche


Andy
17.04.2002, 17:08:24
Hallo,

wie kann ich eine Volltextsuche (wie z. B. hier im Forum) über 3 Spaten (name, url, body) einer SQL Tabelle machen.

Die Spalten haben allen einen FULLTEXT Index...

Danke

Andy

Nev
18.04.2002, 00:10:44
Hi Andy

das kannst du am besten mit dem Befehl like machen

zB:

$select * from Table where
spalte1 like "%".$wert."%"


das % steht für irgendwas.
das heißt wenn du es vor den zu suchenden Wert schreibst oder danach, kann etwas davor bzw. danach stehn aber ned übedingt.

wenn du am Anfang oder am Ende kein % schreibst, muß der Spaltenwert mit dem Wert Anfangen oder Enden.

@Ich glaube ich, ich habs etwas kompliziert erklärt.
wenn du noch mal hilfe brauchst, schreib ich es noch mal neu

Andy
20.04.2002, 17:28:26
hi,

mit den befehl linke kann ich aber nicht auf text felder anwenden...

und so wie das unter www.mysql.de beschreiben ist komme ich nicht weiter... oder anders gesagt es funzt nicht.

so stehts in der mysql doku:

"SELECT * FROM `intra_links` WHERE MATCH (name,body) AGAINST (`suchtext`);

Laut phpMyAdmin habe ich MySQL 3.23.47 Max bei Puretec....

was mache ich falsch... einen fulltext index hab ich angelegt...

wer kann mir helfen...

Azmodan
20.06.2003, 20:16:37
probierst du das
SELECT * FROM tabelle1 WHERE spalte LIKE '%$search%'
und mal schau, es muss funzen, wenn du volltextsuche aktiviert hast

Gweilo
21.06.2003, 10:00:00
ich hatte auch mal probleme damit. Hier ein Script, welches ich zZt benutze:

$query=str_replace("\"",""",$query);
$query=eregi_replace(" and "," +",$query);
$query=eregi_replace(" not "," -",$query);
$query=eregi_replace(" or "," ",$query);

$result = mysql_query("select * from DB where match (feld1, feld2, feld3) against ('$query' IN BOOLEAN MODE)");

ohne "IN BOOLEAN MODE" funktionniert die volltextsuche nicht wirklich wie gewünscht. die ersten 4 manipulationen des Querys sind da, um auch AND NOT oder OR einsetzen zu können. Die erste manipulation entfernt backslashes von dem anführungszeichen.

Falls das immernoch nicht funktionniert überprüf mal, ob die Felder auch auf Fulltext umgestellt sind. Dafür drückst du einfach im phpmyadmin auf den link "Fulltext" rechts jeweils bei jedem Feld in der Struktur.