我正在开发一个需要实时搜索的Django应用程序,即每次更改表单输入时都会过滤并显示搜索结果。
例如:
考虑,我想在提供书籍“名称”时在数据库中搜索书籍。现在,我想建议一个名称类似于输入的“名称”的书籍。
而且,我希望这些建议能够生效-每次更改“名称”的输入字段时,我的应用程序都应该提供新的,更准确的建议。
我应该怎么做?
我有两个解决方案。
每次更改“名称”输入字段的内容时,使用jQuery并进行AJAX调用以获取新建议。
获取数据库中所有可用的书籍并将其存储在JS数组中,然后使用此数组提供建议。
我认为解决方案-2对于大型数据库不可行,因为我们将无法创建如此大的数组。
因此,解决方案-1是大型数据库的唯一选择。
或者还有其他方法可以实现“实时搜索”选项吗?
如果是,那么他们是什么?
否则,优化解决方案-1的方法有哪些?
谢谢!
答案 0 :(得分:1)
对于小数据100条记录,如果它们不太大则可能为1000条,方法2可以。
对于较大的数据,方法1更好:看一下typeahead库:https://twitter.github.io/typeahead.js/-您可以使用http://www.django-rest-framework.org/来创建api
对于大数据,我使用elasticsearch来镜像模型中的数据。该库是入门的好方法:https://github.com/jaddison/django-simple-elasticsearch