Revision: 31880
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at September 15, 2010 04:56 by Mikushi
Initial Code
<?php $redis = new Redis(); $redis->connect("db", 6379); if(!$redis->exists(":compl")) { echo "Loading entries in the Redis DB\n"; $file = file("female-names.txt"); foreach($file as $line) { $line = trim($line); for($i=0 ; $i < strlen($line); $i++) { $prefix = substr($line, 0, $i); $redis->zAdd(":compl", 0,$prefix); } $redis->zAdd(":compl", 0, $line . "*"); } } else { echo "NOT loading entries, there is already a 'compl' key \n"; } function complete($redis, $prefix, $count) { $results = array(); $rangeLen = 50; $start = $redis->zRank(":compl", $prefix); if(!$start) { return $results; } while(count($results) != $count) { $range = $redis->zRange(":compl", $start, $start+$rangeLen-1); $start += $rangeLen; if(!$range || count($range) == 0) { break; } foreach($range as $entry) { $minLen = min(strlen($entry), strlen($prefix)); if(substr($entry, 0, $minLen) != substr($prefix, 0, $minLen)) { $count = count($results); } if(substr($entry, -1) == "*" && count($results) != $count) { $results[] = substr($entry, 0, -1); } } } return $results; } $results = complete($redis, "marcell", 50); foreach($results as $res) { echo $res . "\n"; }
Initial URL
redis-autcomplete
Initial Description
PHP implementation of antirez\\\'s Redis autocompletion in Ruby. (http://antirez.com/post/autocomplete-with-redis.html)\\r\\nUsing Php Redis extension available here : http://github.com/owlient/phpredis
Initial Title
Autocomplete with Redis
Initial Tags
Initial Language
PHP