Volltext funzt nicht richtig

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Volltext funzt nicht richtig

    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 ...


    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");

  • #2
    Um nach dem Preis zu suchen mußte ich einen Volltext auf Price Setzen.
    Dazu mußte ich Price zu Varchar umwandeln ....
    Autsch.

    Weiter hab ich erst gar nicht gelesen. korrigiere dies.

    Was ist wohl wahrscheinlicher, dass ein Besucher, nach

    Ipod 99,95 sucht (und damit alle ipods, die billiger sind oder 99,99 kosten, ignoriert).

    oder dass er auf erweiterte suche klickt und dort eine preisspanne angibt?

    Kommentar


    • #3
      Asche auf mein Haupt

      Stimmt, schlimmer denkfehler. Ok ok ... das stimmt schon. Habe den Preis rausgenommen...... Besser ist ..... Wie frage ich aber mehrere Felder ab ??? Sprich wie realisiere ich eine Erweiterte Suche?

      Das Problem was ich aber immer noch habe, ist das wenn ich z.b. Ipod eingebe erst ab seite 8 oder 9 wirklich ein Ipod kommt. Vorher gibt es nur Zubehör.... Hat einer eine Idee wie ich das Einschränke ????

      Kommentar


      • #4
        der Ansatz mit dem Preis war ja okay.
        alternativ über ne kategorie o.ä.

        das kann man ja im WHERE statement definieren.

        Kommentar


        • #5
          Da bringt mir nichts. Ich muß an verschiedenen Stellen nach Verschiedenen Preiskriterien sortieren. Dann müßte ichh mir ja immer eine neue Funktion basteln. Das muß auch über die Suchanfrage zu Regeln sein. Die frage ist wie .... :-(

          Kommentar


          • #6
            bei so ner präziesen frage...

            ... denkst du am besten selbst noch was nach.

            Kommentar

            Lädt...
            X