在 j2ee web 应用程序中查找函数

Find function in j2ee web application

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

你应该问的问题是"how many results can you store in memory"?如果你有一个小数据集,当然可以,但你必须定义 "small dataset means"。这将有助于您调用数据库一次并在内存中过滤结果(速度更快)。

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

这里没有灵丹妙药。您只能根据您的非功能性需求来回答这个问题。

希望对您有所帮助。