查询,显示和筛选大型数据库列表

时间:2011-11-20 16:18:28

标签: mysql ajax java-ee collections

我正在尝试确定从数据库中收集大型列表然后在客户端显示和过滤结果的最佳方法。让我举个简单的例子:

示例:我有一个包含客户数据的数据库,目前它包含大约2000条记录。这个数字在不断增加。在我的网站上,我有一个页面,我希望能够根据名称,电子邮件,电话号码等信息查询所述数据库,当然还会显示结果(当用户输入Smith时,它会返回包含该名称的所有记录史密斯)。我打算使用AJAX,以便我可以查询数据库并动态显示结果,类似于谷歌的做法。当用户开始搜索时,结果将在找到时开始显示在页面上。

可能的解决方案: 不幸的是,我很难理解如何实现这样的事情。我正在考虑使用ValueList模式。当用户第一次加载页面时,我应该查询数据库并将每条记录存储在一个集合中,然后搜索该集合列表并在我的jsp页面上显示结果吗?基本上创建一个java数据库。我喜欢ValueList模式的是我在页面加载上占据一席之地,并将整个数据库转储到列表中存储的对象中。如果数据库更大,比如2,000,000条记录怎么办?

或者我应该使用没有ValueList的简单DOA模式,并为每个单独的搜索查询数据库?这将导致大量数据库查询,特别是考虑到我计划在用户在搜索框中键入时返回结果。

编辑:我对此的看法越多,就越是一个AJAX问题。我最关心的应该是在用户输入时如何查询我的数据库。我是否设置某种监听器来监听用户停止输入然后执行查询?

1 个答案:

答案 0 :(得分:1)

我会将Solr用于此类任务。

您要用于搜索的字段应使用Solr索引。

然后你对Solr做一个ajax查询并得到结果。您可以设置订单,每页的项目数,并仅显示当前页面的结果。

Solr还有许多其他功能可供您使用。