Frage zur match against funktion in mysql
Martin_LBK
- datenbank
1 wahsaga
Hallo,
ich habe eine Frage zur match against funktion in mysql. Mit dieser Funktion durchsuche ich lediglich ein Feld. Sobald ich nach dem wort 'die' suche kommt der rechner zu keinem such ergebnis.
selbst wenn ich nach einem string suche indem das wort nur enthalten ist(!)
Das wort 'die' ist nicht in den englischen stoppwörtern, das habe ich schon nachgeschlagen und eine deutsche stoppwort liste besitzt mein system glaube ich auch nicht. kennt jemand das problem?
genau so wenig sucht das programm nach wörtern wie 'das', 'der', 'ein'. Handelt es sich da doch wohl um eine deutsche stoppliste, wenn ja? wie kann ich das unterbinden?
hi,
ich habe eine Frage zur match against funktion in mysql. Mit dieser Funktion durchsuche ich lediglich ein Feld. Sobald ich nach dem wort 'die' suche kommt der rechner zu keinem such ergebnis.
selbst wenn ich nach einem string suche indem das wort nur enthalten ist(!)
Das wort 'die' ist nicht in den englischen stoppwörtern, das habe ich schon nachgeschlagen und eine deutsche stoppwort liste besitzt mein system glaube ich auch nicht. kennt jemand das problem?
Wenn du etwas aufmerksamer nachgelesen hättest, dann hätte dir in der Beschreibung über Full-Text Search Functions doch auffallen müssen, was ausser den gelisteten Stopwords noch ignoriert wird:
"Any word that is too short is ignored. The default minimum length of words that are found by full-text searches is four characters."
genau so wenig sucht das programm nach wörtern wie 'das', 'der', 'ein'. Handelt es sich da doch wohl um eine deutsche stoppliste, wenn ja?
Nein.
Die haben nur dummerweise sowohl mit dem englischen als auch mit dem deutschen Wort "die" etwas gemeinsam - die Länge.
wie kann ich das unterbinden?
Wenn du Zugriff auf die Serverkonfiguration hast - Fine-Tuning MySQL Full-Text Search
gruß,
wahsaga
ich habe zugriff auf die Serverkonfiguration und habe die länge auf 2 gesetzt, trotzdem findet das system nur wörter die länger als 4 zeichen sind!
suchen tue ich dabei so:
WHERE MATCH (NW
.name
) AGAINST (%s IN BOOLEAN MODE)
außerdem habe ich noch folgendes gelesen:
Sie funktioniert auch ohne FULLTEXT-Index, auch wenn eine derart ausgeführte Suche recht lange dauert.
also sollte man trotzdem immer die spalte als fulltext setzen?
aber aws mache ich wenn ich über zwei spalten suche? zweimal ein fulltext feld oder einmal ein fulltext feld mit zwei werten?