Suchen in Stringlisten

Diskutiere Suchen in Stringlisten im Allgemeine Java-Themen Bereich.
L

LimDul

Vielleicht hat jemand eine Idee, wie man folgende Anforderung möglichst einfach und idealerweise ohne zu große externe Bibliotheken umsetzen kann.

Gegeben ist eine (große) Liste von Strings (ca. 30.000) die jeweils aus ein oder mehreren Wörtern bestehen. Beispiel: "Frisör", "mobile Massage". Diese Liste ist nicht in einer Datenbank gespeichert, sondern wird zur Laufzeit aus einer anderen Quelle geladen.

In dieser Liste soll nun gesucht werden, in dem der Anwender in ein Suchfeld einen oder mehrere Begriffe eingibt. Nun hätte ich gerne:

* Phonetische Suche
* Wenn mehrere Begriffe eingeben werden, werden die mit ODER verknüpft, wobei aber Ergebnisse wo beide Begriffe vorkommen, oben stehen
* Idealerweise auch die Möglichkeit mitttels "Wort1 Wort2" nach exakten Worten zu suchen.

Halt so alles, was man von einer guten Suchengine erwartet. Nur hab ich halt keine Datenbank drunter und würde auch ungerne mir eine Monsterabhängigkeit ins Projekt holen.

Gibt es da was schlankes?
 
Phash

Phash

die Apache Commons String Utils bieten an, die JaroWinkler Distanz auszurechnen

Java:
//Usage of Apache Commons Lang 3
import org.apache.commons.lang3.StringUtils;   
public double compareStrings(String stringA, String stringB) {
    return StringUtils.getJaroWinklerDistance(stringA, stringB);
}
damit hast du dann den "Abstand" der beiden eingegebenen Worte.
Die Verkettung kannst du selbst leicht implementieren

Damit hast du es quasi ohne große Fremdbibliotheken geschafft ... du musst nur mit dem Abstand etwas experimentieren und halt alle Worte durchgehen... 30000 ist jetzt aber auch keine so krasse Zahl, dass man das nicht in verträglicher Zeit auf aktueller Hardware ohne Optimierung parsen kann
 
L

LimDul

Danke schon mal für den Input. Apache Commons hab ich auch das ein oder andere schon gesehen (und die Commons sind bei uns eh als Abhängigkeit drin)
 
Thema: 

Suchen in Stringlisten

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben