T-Rex: Fulltext Index und Plural

Moin,

hab da eine MySQL Tabelle mit einem Fulltext Index. Sucht man nach einem Wort z.B. "Möhre" dann findet er auch alle "Möhre". Ich möchte jedoch dass auch die Mehrzahl (oder umgekehrt bei Eingabe der Mehrzahl die Einzahl) gefunden wird. Als Beispiel hab ich hier mal Zutaten benutzt, da Chefkoch das genial gelöst hat:

So wie ich es möchte, Einzahl eingegeben, Mehrzahl gefunden:
http://www.chefkoch.de/rs/s0/tomate/Rezepte.html

Hier wird die Einzahl gefunden:
http://www.chefkoch.de/rs/s0/eint%F6pfe/Rezepte.html

Und hier wird sogar ein verwandtes Wort gefnden - Karotte (Siehe Zeile 13) oder Rübli (Zeile 3):
http://www.chefkoch.de/rs/s0/m%F6hre/Rezepte.html

Ein ähnliches Wort will ich jetzt nicht unbedingt finden, es reicht schon wenn die Mehrzahl/Einzahl gefunden wird. Wegen dem ähnlichem Wort nerve ich ein anderes mal ;).

Gruß
Mehrzähliger
T-Rex

  1. Moin,

    der Trick ist doch ganz einfach: Die zu durchsuchenden Texte enthalten die Substantive sowohl im Singular als auch im Plural und schon matscht das ;)
    Wobei die match(feldname)-Methode auch mit Texten gefüttert werden kann, die im Suchergebnis gar nicht auftauchen.

    Btw., bei 'Möhre' kommt Werbung über Karnickel.

    Schöne Grüße,
    Dein Horst

    --
    Lebkuchen ist ein Kuchen, der lebt.
    1. der Trick ist doch ganz einfach: Die zu durchsuchenden Texte enthalten die Substantive sowohl im Singular als auch im Plural und schon matscht das ;)
      Wobei die match(feldname)-Methode auch mit Texten gefüttert werden kann, die im Suchergebnis gar nicht auftauchen.

      Moin Hotti,

      joa die Idee hatte ich auch schon. Also ich bin schon soweit, dass ich in einem "unsichtbaren" (also für den User nicht sichtbar) Tabellenfeld alle möglichen Keywords erfasse. Dann brauche ich zum einen keinen Fulltext Index über 10 Spalten und zum anderen könnte ich mehr Keywords aufnehmen. Beim Plural hab ich z.B. daran gedacht einfach ein "s" oder ein "n" an die Wörter dran zu hauen bzw. den letzten Buchstaben weg zu nehmen. Dann hätte ich aus "Tomate" => "Tomaten"/"Tomates" gemacht und aus "Tomaten" => "Tomate". Bei "Eintöpfe" (Eintöpf) würde es aber nicht funktionieren? Wobei die Mysql Dings, also die sprache also der Typ feld den ich aktuell hab der unterscheidet nicht zwischen ö und o (doofes silvester bin schon etwas naja...sekt halt) - ich hoffe ihr wisst was ich meine :D.

      Genial wäre natürlich eine Tabelle mit Singular, Plural und Synonymen aller Deutscher Wörter.

      @ dedlfix, ich hab mnir das nicht nur durchgelesen sondern ausgedruckt und übers bett gehängt, so quasi. Besonders cool finde ich das erneute durchgehen der Daten um auf Verwandtschaft zu prüfen. Aktuell hab ich jedoch 35 Datensätze und wenn ich das z.B. aktiviere brauche ich gar kein Keyword mehr angeben, es werden immer alle 35 Datensätze gefunden. Die Datensätze haben anscheinend eine zu hohe Verwandtschaft.

      Danke für eure Hilfe

      Gruß
      Party!!!
      T-Rex

  2. Tach!

    hab da eine MySQL Tabelle mit einem Fulltext Index. Sucht man nach einem Wort z.B. "Möhre" dann findet er auch alle "Möhre". Ich möchte jedoch dass auch die Mehrzahl (oder umgekehrt bei Eingabe der Mehrzahl die Einzahl) gefunden wird.

    Das allein reicht noch nicht. Jedes Substantiv kann im Deutschen in bis zu 8 Formen vorkommen. Manchmal sind es weniger und manchmal sogar noch mehr wegen ein paar Alternativschreib- und -beugeweisen.

    Ich lege dir ans Herz, das Kapitel zur Fulltext-Suche durchzulesen, um zu verstehen, wie die Fulltext-Suche arbeitet und ob sie nicht vielleicht nur für die vergleichsweise einfachere englische Grammatik funktioniert. (Mehr kann ich leider auch nicht zum Thema beitragen.)

    dedlfix.