Wie programmiert man eine Kontext abhängige Suchfunktion?

indiachinacook  09.05.2022, 18:35

Du mußt vor allem wissen, was Du eigentlich finden willst. Soll z.B. auch „Ringparabel“ oder „Goldringes“ gefunden werden? Was ist mit „Boxringen“?

Cynob 
Fragesteller
 09.05.2022, 18:41

Das ist ne gut Frage in wie weit man das ausweiten möchte.

Das ganze ist ne Suchfunktion für ein Lager. Der eine sucht nach "Rundbürste" und der andere nach "Flaschenbürste".

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Du könntest den Unterschied zu Elementen in der Datenbank mit der Levenshtein-Distance berechnen und unter einer gewissen Distanz das Ergebnis trotzdem vorschlagen.

Siehe YouTube, GitHub, etc. für "Inspiration"...

Wenn Du 'Ringe' 'stemmst' (Stemming - gelegentlich auch Normalisierung), wird daraus 'Ring'. Vorraussetzung ist natürlich, daß Dein Stemmer gescheit arbeitet. Und nein, Stemming ist keine leichte Aufgabe.

Daneben wird dann auch bei Ähnlichkeitssuche auf die Levenshtein-Distanz zurückgegriffen, die bereits erwänt wurde.

Übrigens, manche Datenbanken haben schon einiges an Funktionalität für (Volltext)suche an Board, sogar mit Lokalisierung etc. Hier lohnt sich ein Blick in die Dokumentation.