Hallo Leute,
ich habe eine MYsql Datenbank mit ca 1.000.000 Artikel.
Auf die Spalten Price, Description, Name habe ich einen Volltext Index gesetzt.....
Ok bis dahin alles wunderbar.....
Wenn ich jetzt z.b. ipod eingebe kriege ich alles was mitt Ipod zu tun hat ..... Ist ok ...
Sortiert nach Price ...... Hmmm und schon geht es los...... Um nach dem Preis zu suchen mußte ich einen Volltext auf Price Setzen.
Dazu mußte ich Price zu Varchar umwandeln ....
Folgendes Problem hab ich jetzt:
Er sortiert z.b. den Wert 111 Euro vor dem 23 ein ... :-( Schon klar, es ist ja nicht mehr dezimal. ABer wie kann ich das Problem lösen.
Als weiteres liefert die Abfrage sehr schlechte ergebnisse sobald ich nach 2 oder mehr Wörtern suche .......
z.b. ipod + zubehör ..... Bringt nur noch 2 Ergebnisse.
Es sollte aber nur Artikel bringen wo ipod und zubehör drin vorkommen ....
Hat einer eine Idee ????
Ich habe stundenlang probiert, ach was tage sind es mitlerweile. Und in allen Foren steht etwas anderes....
Hier meine ABfrage ...
ich habe eine MYsql Datenbank mit ca 1.000.000 Artikel.
Auf die Spalten Price, Description, Name habe ich einen Volltext Index gesetzt.....
Ok bis dahin alles wunderbar.....
Wenn ich jetzt z.b. ipod eingebe kriege ich alles was mitt Ipod zu tun hat ..... Ist ok ...
Sortiert nach Price ...... Hmmm und schon geht es los...... Um nach dem Preis zu suchen mußte ich einen Volltext auf Price Setzen.
Dazu mußte ich Price zu Varchar umwandeln ....
Folgendes Problem hab ich jetzt:
Er sortiert z.b. den Wert 111 Euro vor dem 23 ein ... :-( Schon klar, es ist ja nicht mehr dezimal. ABer wie kann ich das Problem lösen.
Als weiteres liefert die Abfrage sehr schlechte ergebnisse sobald ich nach 2 oder mehr Wörtern suche .......
z.b. ipod + zubehör ..... Bringt nur noch 2 Ergebnisse.
Es sollte aber nur Artikel bringen wo ipod und zubehör drin vorkommen ....
Hat einer eine Idee ????
Ich habe stundenlang probiert, ach was tage sind es mitlerweile. Und in allen Foren steht etwas anderes....
Hier meine ABfrage ...
Code:
// Holt die aktuellen Datensätze aus - define("MAX_EINTRAEGE",10) $textfieldSecure = @mysql_real_escape_string(stripslashes($_GET['textfield'])); $result = @mysql_query("SELECT * FROM produktmaster WHERE MATCH (ProductShortDescription, ProductName, ProductPrice) AGAINST ('%".$textfieldSecure."%' IN BOOLEAN MODE)ORDER BY ProductPrice LIMIT $start, ".$maxEintraege ); // Ermittelt die Gesamtzahl der Datensätze $resultGesamt = @mysql_query("SELECT COUNT(*) AS menge FROM produktmaster WHERE MATCH (ProductShortDescription, ProductName, ProductPrice) AGAINST ('%".$textfieldSecure."%' IN BOOLEAN MODE) ORDER BY ProductPrice"); $Eintraege = @mysql_result($resultGesamt,0,"menge");
Kommentar