2016-06-28 7 views
1

Ich habe eine große Liste von Wörtern vielleicht 300-600 Wörter und ich möchte es so zu machen, dass als mein Benutzer beginnt, ein Wort eintippend schlägt die App Wörter, die es aus meiner spezifischen Liste gefunden sind nah an der Rechtschreibung, die die Person gibt. So ähnlich wie die automatische Vervollständigung, aber die Liste der Wörter ist dynamisch und spezifisch für diesen Benutzer. Irgendwelche Edelsteine ​​oder Techniken Vorschläge, wie ich das erreichen kann?Suche nach Namen Variationen aus der großen Liste Ruby

+1

Eine Option ist mit [jQuery Autocomplete-control] (https: //www.devbridge.com/sourcery/components/jquery-autocomplete/). –

+0

Mit einer Wortliste, die kurz ist, macht es wahrscheinlich Sinn, es auf der Clientseite zu tun, dh die gesamte Wortliste beim Laden der Seite an den Browser zu senden (im Gegensatz zu einer Ajax-Anfrage bei jedem Tastendruck) und dann eine Komponente wie [typeahead .js] (https://twitter.github.io/typeahead.js/) (oder das erwähnte jQuery-Plugin Nic), um die Benutzerinteraktion zu behandeln. –

+0

@ Jordan, auch wenn es die Wortliste bekommen muss, indem man durch ein Array von Objekten geht und das "Name" -Kennzeichen von jedem Objekt im Array zieht? – SupremeA

Antwort

1

Wenn Sie wollen, dass es in Ruby tun Ihnen einen Fuzzy-Match-Algorithmus verwenden könnte, wie die in diesem Edelstein verwendet https://github.com/seamusabshere/fuzzy_match das Beispiel überprüfen:

>> FuzzyMatch.new(['seamus', 'andy', 'ben']).find('Shamus') 
=> "seamus" 
+0

Danke ich werde es versuchen! – SupremeA