我正在开发我的第一个 Flask 应用程序(使用 sqlite 作为数据库)。它将用户的单个名称作为查询,并显示有关此名称的信息作为响应。
一切正常,但我想实现 typeahead.js 以提供更好的用户体验。Typeahead.js 将请求作为用户类型发送到服务器,并在下拉列表中建议可能的名称。现在我正在搜索数据库select * from table_name where name like 'QUERY%'
。但这当然没有我希望的那么快——它可以工作,但有明显的输入延迟(我想更少或大约一秒)。
为了加快速度,我查看了一些内存缓存选项(如 Redis 或 memcached),但它们是键值存储,因此我认为不符合我的需求。我认为可能的选择是列出名称([“Jane”,“John”,“Jack”],总共大约 200k 个名称),将其加载到 ram 中并在那里进行搜索。但是如何在 Flask 中加载内存中的内容呢?
无论如何,我的问题是:使这种搜索(通过前几个字母)更快(在 Python/Flask 中)的最佳方法是什么?