在j2ee Web应用程序中查找功能

时间:2015-01-27 15:37:41

标签: mysql jsp java-ee servlets search

我在网络应用程序中开发一个小市场,我必须实现搜索功能。现在,我知道我可以在mysql中使用MATCH函数,或者我可以添加一些库(如apache lucene),但这不是我的疑问。我正在考虑管理从搜索功能获得的结果集(servlet会这样做),因为并非所有结果都应该一次发送到客户端,所以我想在某些页面中将它们分开。我想知道什么更有效率,如果我更喜欢在db中搜索客户端调用的每个页面,或者我应该将结果集保存在托管bean中并在客户端请求新页面时访问它们结果。谢谢(我希望我的英语很容易理解)

1 个答案:

答案 0 :(得分:0)

你应该问的问题是"你可以在内存中存储多少结果"?如果你有一个小数据集,那么肯定,但你必须定义什么"小数据集意味着"。这将有助于您调用数据库一次并在内存中过滤结果(这更快)。

替代方法,对于较大/较大的数据集,您需要在每个用户页面请求上向数据库请求。这里的问题是你在每次调用时调用数据库,因此你必须有一个优化的搜索查询,它将带来小块(SQL LIMIT子句)的结果。如果您只想访问数据库一次并在" memory"中过滤结果,则必须在应用程序和数据库之间插入缓存层。这样,结果将被缓存,您可以过滤缓存的结果。缓存将位于不同的JVM上,以便不共享内存堆空间。

这里没有银弹。您只能根据您的非功能性要求来回答这个问题。

我希望这会有所帮助。