Ich arbeite an diesem Filterding, bei dem ich ungefähr 50-100 Listenelemente habe. Und jedes Element hat Markup wie folgt:
%Vor%Ich habe Markup wie folgt erstellt, weil ich anfänglich List.js
verwendet habe Also, wahrscheinlich hast du schon vermutet, was ich will ist, solche Suchen zu machen: @region: LA @price: 124
und so weiter. Das Problem ist, dass ich auch mehr als ein Element anzeigen möchte, um mehr als ... eins auszuwählen:)
Ich nehme an, dass dies eine unscharfe Suche erfordert, aber das Problem ist, dass ich nichts funktionelles gefunden habe.
Irgendeine Idee oder Ausgangspunkt?
// edit: Da ich eine ziemlich kleine Anzahl von Elementen habe, möchte ich eine Client-seitige Lösung.
Ein Jahr später hat List.js ein nettes Plugin für unscharfe Suche bekommen, das ziemlich gut funktioniert. p>
Ich suchte nach "unscharfer Suche" in Javascript, aber habe hier keine Lösung gefunden, also habe ich meine eigene Funktion geschrieben, die das tut, was ich brauche.
Der Algorithmus ist sehr einfach: Durchstreichen Sie die Nadelbuchstaben und prüfen Sie, ob sie in der gleichen Reihenfolge im Heuhaufen vorkommen:
%Vor%z.B.:
%Vor%Ich habe eine kleine Funktion, die einen String in einem Array sucht (zumindest für mich ergibt es bessere Ergebnisse als Levenshtein):
%Vor%Eine andere (einfache) Lösung. Groß- und Kleinschreibung wird nicht beachtet und die Reihenfolge der Buchstaben ignoriert.
Es führt eine Überprüfung für jeden Buchstaben des Suchbegriffs durch. Wenn der ursprüngliche String diesen Buchstaben enthält, wird er aufwärts zählen (oder abwärts, wenn dies nicht der Fall ist). Basierend auf dem Verhältnis von Übereinstimmungen / String-Länge wird True oder False zurückgegeben.
%Vor%Beispiele:
%Vor% Hear ist jsPerf, die unscharfe Suche vergleicht, die von tborychowski String.prototype.fuzzy
vs RegExp
vorgeschlagen wird, wobei jedes Zeichen durch .*
Ich war nicht zufrieden mit list.js, also habe ich meine eigene erstellt. Das ist wahrscheinlich nicht gerade unscharfe Suche, aber ich weiß nicht, wie ich es nennen soll. Ich wollte einfach, dass eine Abfrage ohne Berücksichtigung der Reihenfolge meiner Wörter in der Abfrage übereinstimmt.
Stellen Sie sich das folgende Szenario vor:
Hier ist ein Beispiel:
%Vor%Nun, ich hoffe, das hilft jemandem da draußen.
Tags und Links javascript fuzzy-search