这里有一个类似的问题实现<接下来>lt;上一个>搜索列表中的元素链接但我对这个答案不满意,我的情况略有不同,我想更常见地知道最好的方法。
我有一个搜索页面,比方说,搜索诗歌。(目前数据来自mysql,但我计划将它们索引到apachesolr中)
搜索结果页面上的每个结果(比如/search?keyword=flower&author=john)都是一个链接,你可以点击它,然后重定向到诗歌详细信息页面。
现在,如果页面是从搜索结果页面中单击的,我希望在详细信息页面上有"prev"answers"next"链接。并且它使用相同顺序的搜索结果。
我能想到的是在详细信息页面中添加完整的搜索参数,所以"带分页的详细信息页面"实际上是一个搜索结果,但perpage=1。但每次显示诗歌详细信息页面时,我都必须进行完整的查询。
我想知道还有更好的方法吗?
谢谢并为我糟糕的英语道歉。
至于Solr部分,您可以使用DeepPaging,看看这里:http://heliosearch.org/solr/paging-and-deep-paging/
当你使用DeepPaging时,你会从Solr得到一个"cursorMark"就像你下一次查询结果的书签一样。
您将不得不重新查询,但您将使用该标志保持在同一结果集中,因此,当你只为下一个文档这样做时,你只需要得到一行,记住你现在的位置从哪里开始,保存光标标记,并为下一个重复所有这些操作。
通过记住以前的光标标记,您也可以返回。
问候,
Markus
您必须从数据库中获取诗歌的详细信息。但其余的参数可以从列表页面传递,包括在分页列表中检索到的诗歌ID的列表(数组)。您可以使用它直到到达列表的末尾,以检索下一页列表。
您可能还需要考虑服务器上可用的缓存选项。APC扩展在PHP上很常见。