Tolerante suche?

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

  • Tolerante suche?

    Hallo ich bin dabei eine Suchfunktion für Artikel in meiner Website zu implementieren.

    Was ich gerne machen möchte ist das die Suche tolerant ist, also zum Beispiel

    wenn ein Artikel als: "Toi, Déjà Vu" (Ich weiss das macht kein Sinn, ist nur als Beispiel gedacht) in der Datenbank eingetragen ist, soll es gefunden werden wenn als Suchbegriff:
    • Toi, Déjà Vu
    • Toi Déjà Vu
    • Toi, Deja Vu
    • Toi Deja Vu


    eingegeben wird. Wenn jemand weiss wie sich dieses am besten machen lässt wäre ich sehr dankbar

  • #2
    Code:
    WHERE x LIKE '%Toi Déjà Vu%'
    z.b.
    ungetestet ungeprüft
    Bitte Beachten.
    Foren-Regeln
    Danke

    Kommentar


    • #3
      Original geschrieben von Wyveres
      Code:
      WHERE x LIKE '%Toi Déjà Vu%'
      z.b.
      ungetestet ungeprüft
      Ne das funktioniert leider nicht.

      Kommentar


      • #4
        du hast das x, aber schon durch deinen Spaltennamen ersetzt?
        Für Rechtschreibfehler übernehme ich keine Haftung!

        Kommentar


        • #5
          Original geschrieben von Damian1984
          du hast das x, aber schon durch deinen Spaltennamen ersetzt?
          Eine berechtigte Frage
          zudem musst du dann auch noch dein suchbegriff in die %% setzen sonst wirds natürlich doppel nix.
          außerdem íst das nur ein kleiner codeschnippsel.

          der bei mir

          z.b.
          PHP-Code:
          $suche="SELECT content FROM inhalt WHERE content LIKE '%".$suchbegriff."%'"
          aussehen könnte. $suchbegriff wurde an der stelle natürlich schon von irgenntwelchen functionen durchsucht ob sich nicht spassvögel daran versuchen.
          Bitte Beachten.
          Foren-Regeln
          Danke

          Kommentar


          • #6
            Ich behaupte mal ganz frech, es geht hier um die Zeichen ´, `, und das Komma.

            Diese Zeichen können bei der Suche eingegeben werden, müssen aber nicht.
            Wird bspw. das Komma nicht angegeben, steht aber in der Datenbank, helfen auch die % vor und hinter dem Suchbegriff nichts.

            Eventuell hilft SOUNDEX?
            Du kannst auch eine Suchspalte anlegen und da den Text ohne Sonderzeichen und Co. (also nur die Buchstaben) haben und den Suchparameter auch entsprechend bearbeiten
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              Original geschrieben von mrhappiness
              Ich behaupte mal ganz frech, es geht hier um die Zeichen ´, `, und das Komma.

              Diese Zeichen können bei der Suche eingegeben werden, müssen aber nicht.
              Wird bspw. das Komma nicht angegeben, steht aber in der Datenbank, helfen auch die % vor und hinter dem Suchbegriff nichts.

              Eventuell hilft SOUNDEX?
              Du kannst auch eine Suchspalte anlegen und da den Text ohne Sonderzeichen und Co. (also nur die Buchstaben) haben und den Suchparameter auch entsprechend bearbeiten
              stimmt LIKE '%xyz%' Unterscheidet zwischen sonderzeichen und Gross/Kleinschreibung
              soundex() scheint da schon der richtige ansatz.
              blos wenn ich mir jetzt überlege das er eine Gesamte Db wort für wort per soundex vergleichen soll wird mir ein wenig übel in der magengegend.

              da wenn ich das richtig versteh ihm vorher nicht bekannt ist womit er den per suchfeld eingetragenen und mit soundex umgewandelten code vergleichen soll.
              Bitte Beachten.
              Foren-Regeln
              Danke

              Kommentar


              • #8
                Original geschrieben von Wyveres
                blos wenn ich mir jetzt überlege das er eine Gesamte Db wort für wort per soundex vergleichen soll wird mir ein wenig übel in der magengegend.
                Na ja, das eignet sich natürlich nur, wenn im Feld nur "Toi, Déjà Vu" steht (in welcher exakten Schreibweise auch immer).
                Dann könnte man den SOUNDEX-Wert ja schon vorher berechnen, und bspw. in einer extra Spalte ablegen.

                Aber wenn das irgendwo in längeren Textfeldinhalten auftauchen soll - dann nützt auch SOUNDEX nicht viel.

                Dann wäre es vielleicht noch denkbar, sich eine um solche Sonderzeichen "bereinigte" Textversion zusätzlich abzulegen (Interpunktionszeichen komplett raus, é durch e und à durch a etc. ersetzen, ...) - und diese zur Suche mittels LIKE heranzuziehen.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  Original geschrieben von mrhappiness
                  Ich behaupte mal ganz frech, es geht hier um die Zeichen ´, `, und das Komma.

                  Diese Zeichen können bei der Suche eingegeben werden, müssen aber nicht.
                  Wird bspw. das Komma nicht angegeben, steht aber in der Datenbank, helfen auch die % vor und hinter dem Suchbegriff nichts.

                  Eventuell hilft SOUNDEX?
                  Du kannst auch eine Suchspalte anlegen und da den Text ohne Sonderzeichen und Co. (also nur die Buchstaben) haben und den Suchparameter auch entsprechend bearbeiten
                  Genauso ist es. (Dank auch für Damian1984 und Wyveres aber SO unerfahren bin ich mit SQL nun mal auch nicht).

                  Also es sieht so aus als werde ich die alternative mit der "Zeichengereinigten" Spalte benutzen, dieses müsste doch funktionieren da der Text glücklicherweisse schon auf nur "Toi, Déjà Vu" (oder besser gesagt, kurze texte) beschränkt ist. Vielen Dank an allen in jeden Fall

                  Kommentar


                  • #10
                    Die implemenation ist fertig, läuft wie geschmiert, danke für den tip

                    Kommentar

                    Lädt...
                    X