Hallo,
ich möchte gerne meine Abfrage auf eine SQl-DB so einstellen, dass auch nach weiteren Dingen gesucht wird.
zb. wird Hammburg eingegeben, kommt der hInweis: „Meinten Sie Hamburg“.
So wie Google das macht.
Nun hab ich erfahren, dass diese Funktionalität aus der Google-Anwendung kommt. Eine Möglichkeit so etwas zu implementieren wäre, einen Algorithmus ähnlich der Rechtschreibprüfung zu bauen, der das eingegebene Wort mit verschiedenen Worten aus einer Wortliste (Index) auf Ähnlichkeit vergleicht.
jetzt meine Frage, wie macht man das unter Java??? Gibts sowas schon vorgefertigt??
Danke
Steffi
(siehe: http://www.wer-weiss-was.de/cgi-bin/forum/showarticl…)
hi,
Hallo,
ich möchte gerne meine Abfrage auf eine SQl-DB so einstellen,
dass auch nach weiteren Dingen gesucht wird.
zb. wird Hammburg eingegeben, kommt der hInweis: „Meinten Sie
Hamburg“.
So wie Google das macht.
Nun hab ich erfahren, dass diese Funktionalität aus der
Google-Anwendung kommt. Eine Möglichkeit so etwas zu
implementieren wäre, einen Algorithmus ähnlich der
Rechtschreibprüfung zu bauen, der das eingegebene Wort mit
verschiedenen Worten aus einer Wortliste (Index) auf
Ähnlichkeit vergleicht.
jetzt meine Frage, wie macht man das unter Java??? Gibts sowas
schon vorgefertigt??
hmm, dass weiss ich nicht so genau. aber alles in allem koenntest du doch folgendes versuchen.
erstelle einen index aus allen dir ein deiner datenbank bekannten Staedten. damit faengst du gleichzeitig ab, dass du einen Begriff zwar vorschlaegst, der aber gar nicht in deiner datenbank vokommt. um keinen doppelten eintraege zu haben versiehst du deinen query mit einem distinct(city.name) beispielsweise wenn du eine inhaltsuebersicht ueber alle staedte haben moechtest. dann anschliessend, kannst du die eingabe des Users mit deinen Eintraegen vergleichen. ich bin mit ziemlich sicher dass du Strings auch mit einer Beurtilung vergleichen kannst. Wälz doch dazu am besten mal die api deiner java version
beispiel
http://java.sun.com/j2se/1.3/docs/api/
da dann java.lang -> Strings
probier mal compareto(String bla)
ich bin mir nicht sicher dass das ding macht was du brauchst. allerdings sicher bin ich mir dass du sowas finden wirst dort auf der seite.
naja der rest ist dann einfach. falls es keinen exakten hit gibt schlaegst du ihm die anderen aehnlichen an. gibt es einen hit zeigst du ihn an. gleichzeitig kannst du ihm zusaetzlich die u.U. aehnlichen hits anzeigen.
ob es etwas aehnliches vorgefertigtes gibt weiss ich nicht. probier mal google groups
HtH
josh
Moin
zb. wird Hammburg eingegeben, kommt der hInweis: „Meinten Sie
Hamburg“.
jetzt meine Frage, wie macht man das unter Java??? Gibts sowas
schon vorgefertigt??
kennst du das SQL-Commando „LIKE“ ?
cu