【发布时间】:2012-02-09 05:30:42
【问题描述】:
我希望将 jqueryui-autocomplete 与 django 项目集成。我的解决方案起点是https://code.djangoproject.com/wiki/AutoCompleteSolutions。
我遇到的解决方案使用*__icontains 或*__startswith,尽管这些搜索当然可以被缓存(查看http://djangosnippets.org/snippets/233/)。我想知道用数组中相对较小的术语列表(10,000?)预先填充页面是否实际上可以节省数据库命中并成为更好的解决方案。例如,通过 django 一次性输出术语:
return [str(e.keyword) for e in CM_Dict.objects.all()]
然后在一个非常基本的 jquery-ui-autocomplete 配置中使用结果列表作为 source:。
有没有好的方法来对这样的东西进行基准测试?有人在生产中使用 django+autocomplete 吗?
编辑:我应该补充一点,自动完成功能仅适用于登录用户,但数据无论如何都不敏感。
【问题讨论】:
-
这消除了您可能首先想要使用 ajax 自动完成的原因。除非您能够读心,否则预填充的数据可能需要相对较大才能涵盖一组潜在查询。即使有一半的用户点击了预填充的数据,仍有另一半用户花费了时间(和带宽)将数据传输给,但仍然必须联系服务器!
-
不,这是使用 jqueryui-autocomplete 的选项,它配置为使用 JS 数组。这些不是像 google 或一些通用搜索那样的潜在查询,只是该字段的潜在术语列表。
标签: python django json serialization jquery-ui-autocomplete