JavaScript unscharfe Suche

7

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.

    
Ionuț Staicu 09.02.2012, 05:49
quelle

7 Antworten

5

Ein Jahr später hat List.js ein nettes Plugin für unscharfe Suche bekommen, das ziemlich gut funktioniert. p>     

Ionuț Staicu 30.05.2013, 04:25
quelle
20

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%     
tborychowski 06.03.2013 15:59
quelle
1

Ich habe eine kleine Funktion, die einen String in einem Array sucht (zumindest für mich ergibt es bessere Ergebnisse als Levenshtein):

%Vor%     
Roland Hentschel 28.10.2012 10:11
quelle
1

Und ich habe mein eigenes gemacht. Es verwendet

    
Unamata Sanatarai 13.04.2014 11:41
quelle
1

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%     
gnj 06.10.2016 21:03
quelle
0

Hear ist jsPerf, die unscharfe Suche vergleicht, die von tborychowski String.prototype.fuzzy vs RegExp vorgeschlagen wird, wobei jedes Zeichen durch .*

getrennt ist

Ссылка

    
dzjosjusuns 23.07.2014 15:37
quelle
0

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:

  • Eine Sammlung von Artikeln im Speicher existiert
  • Reihenfolge der Abfrage Wörter Aussehen ist nicht wichtig (z. B. "Hallo Welt" vs "Welt Hallo")
  • Der Code sollte leicht lesbar sein

Hier ist ein Beispiel:

%Vor%

Nun, ich hoffe, das hilft jemandem da draußen.

    
Marc Lundgren 10.12.2014 22:59
quelle

Tags und Links