2011-11-20 101 views
0

我试图确定从数据库收集大型列表然后在客户端显示和筛选结果的最佳方法。让我举个简单的例子:查询,显示和筛选大型数据库列表

例如:我有一个数据库与客户数据,目前它包含大约2000条记录。这个数字不断增加。在我的网站上,我有一个页面,我希望能够根据姓名,电子邮件,电话号码等信息查询上述数据库,当然还会显示结果(当用户输入Smith时,它将返回包含名称的所有记录史密斯)。我正在计划使用AJAX,这样我就可以查询数据库并显示结果,与Google的操作类似。当用户开始搜索时,搜索结果会在页面上显示出来。

可能的解决方案: 不幸的是,我很难在如何执行这样的事情。我正在考虑使用ValueList模式。当用户第一次加载页面时,我应该查询数据库并将每个记录存储在一个集合中,然后搜索该集合列表并在我的jsp页面上显示结果?基本上创建一个Java数据库。我喜欢关于ValueList模式的事情是,我在页面加载时取得了巨大成功,并将整个数据库转储到存储在列表中的对象中。如果数据库比较大,说200万条记录呢?

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

编辑:我越想这件事,它就越是一个AJAX问题。我最关心的应该是如何在用户输入时查询我的数据库。我是否设置某种监听器来监听用户停止输入并执行查询?

+0

对于将当前的2000个客户外推到2000000,你相当乐观。当你有这么多的客户时,你的应用程序的设计将很难与你现在拥有的东西有共同之处。 – newtover

回答

1

我会使用Solr这种类型的任务。

您将用于搜索的字段应与Solr建立索引。

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

Solr有很多其他功能可以帮助您。

+0

Solr是很多人的选择之一,但我接受了这个答案,因为它对于我来说使用第三方选项是最有意义的。当然,我可以创建自己的版本并重新发明轮子,但那会起反作用。 – ryandlf