使用redis自动完成
redis-completion的Python项目详细描述
使用redis自动完成基于:
- http://antirez.com/post/autocomplete-with-redis.html
- http://stackoverflow.com/questions/1958005/redis-autocomplete/1966188
- http://patshaughnessy.net/2011/11/29/two-ways-of-using-redis-to-build-a-nosql-autocomplete-search-index
redis completion能够快速存储大量短语 正在搜索匹配项。丰富的数据可以存储和检索,帮助您 检索搜索结果时避免访问数据库。
查看documentation了解更多信息。
用法
如果您只想存储非常简单的东西,例如字符串:
engine = RedisEngine() titles = ['python programming', 'programming c', 'unit testing python', 'testing software', 'software design'] map(engine.store, titles) >>> engine.search('pyt') ['python programming', 'unit testing python'] >>> engine.search('test') ['testing software', 'unit testing python']
如果您想存储更复杂的数据,如博客条目:
Entry.create(title='an entry about python', published=True) Entry.create(title='all about redis', published=True) Entry.create(title='using redis with python', published=False) for entry in Entry.select(): engine.store_json(entry.id, entry.title, { 'published': entry.published, 'title': entry.title, 'url': entry.get_absolute_url(), }) >>> engine.search_json('pytho') [{'published': True, 'title': 'an entry about python', 'url': '/blog/1/'}, {'published': False, 'title': 'using redis with python', 'url': '/blog/3/'}] # just published entries, please >>> engine.search_json('redis', filters=[lambda i: i['published'] == True]) [{u'published': True, u'title': u'all about redis', u'url': u'/blog/2/'}]
安装
使用pip安装:
pip install redis-completion
通过git安装:
git clone https://github.com/coleifer/redis-completion.git cd redis-completion python setup.py install