是的,有点头疼,虽然我感觉有一个明显的答案,我只是没有看到树木。
Baiscally,使用Solr作为我网站的搜索引擎,每页带回15个结果。当您单击结果时,您会看到一个详细信息页面,其上有一个“结果中的下一个”链接,这显然会将您转到下一个结果。
这样做最好的方法是什么?我想出了一些解决方案,但它们要么过于实用,要么就是不起作用。
我可以将所有ID存储在会话数组中,然后在当前数据之后获取一个并将其放入链接中。但是可能有数百/数千个结果,数组所需的内存以及处理它的性能不佳是不切实际的。
我可以采用相同的方法并将其放入数据库中,但是当我从数据库中取出它时,我仍然需要处理一个可能很大的数组。
或者;我可以再次进行搜索,只返回id,然后抓住我们正在查看的那个之后的那个。我认为这可能是最好的选择吗?虽然它确实看起来有点混乱,因为我必须在不同的“页面”(即第16,31等等结果)上选择id。除非我通过结果中的位置,并从中选择,但这似乎仍然是正确的方法。
如果这完全是胡说八道,我真的很抱歉,任何帮助都会一如既往地受到重视,
干杯!
答案 0 :(得分:0)
你的会话解决方案并不是那么糟糕。因为这些成千上万的结果只是内存中的几千字节。
虽然你可以用另一种方式做到这一点。你可以通过简单的查询找出下一条记录的id。这比看起来更简单:如果你按照数字订购它,我相信你可以在10cant之后找到下一个令牌。对于数据库记录,只需执行相同的操作;)