我想知道是否有人有这些搜索引擎的经验,我在表中包含id和名称(id-> 5 ....... name-> city,state)的大约2500条记录,这是只读的,几乎永远不会改变,如果我选择mysql,我想使用:select id,name来自城市,其名称如'%text%',名称如'%othertext%'; ...对于每个单词,或者也许是Redis,哪个选项更适合这种情况?是一个网站的自动完成功能,存在城市的长名称和每个名称的几个单词.
对于自动完成列表(使用startwith或通配符搜索),Redis本身并不是您最好的选择.我最近为Redis添加了一些功能来完成这个(好吧,从bit开始).请参阅此处的拉取请求.
如果您想要使用NoSQL旅行车,那么像ElasticSearch或SOLR这样的集成解决方案值得研究.他们使用Redis作为后端,并提供复杂的标记化和自然语言检测(Lucene等).
使用对象映射器,如(这里的python示例)Josiah Carlsons的rom或Luca Sbardella的stdnet,也是一种选择.它们以这样的方式存储数据,即可以使用自动Lua脚本在Redis中执行简单查询.
如果您更喜欢坚持使用SQL,那么使用像MySql或Postgres这样的关系数据库没有任何问题.特别是有这么少的行数.
希望这有帮助,TW