I want an autocomplete feature. I have short descriptive strings on a property of a data type. I have a list of ids in redis for the datatype ordered by created date and I use the ids to set and get properties for the datatype as explained in the redis type documentation. I don't use hash tables. What's the best way to get a set of strings matching what's been typed into an autocomplete input box given this setup? Going through all ids and checking the property I want to search - for each keystroke seems like the wrong way to do this.
EDIT: In addition to the answers below, I've been shown this:
http://antirez.com/post/autocomplete-with-redis.html
You need to set up an index using sets or sorted sets that you write to when you save anything.
There's a good writeup at http://web.archive.org/web/20121013063245/http://playnice.ly/blog/2010/05/05/a-fast-fuzzy-full-text-index-using-redis that is pretty close to what I use myself.
In Redis, there is no way to search the value of a key. The only way you can "find" a string, is via the keys
command. The only downside is that it searches the key names, not the value. The way you can get around this is by having your search string as the key and then have the value of said key your ID. I use an autocompleate function on my side, and I use another database that just contains search strings with have an ID as a value.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With