这里有一个类似的问题Best way to implement <next>, <prev> element links from search list 但我对这个答案并不满意,我的情况略有不同,我想更了解最常用的方法。
我有一个搜索页面,让我们说,搜索诗歌。 (目前数据来自mysql,但我计划将它们编入apache solr索引)
搜索结果页面上的每个结果(例如,/ search?keyword = flower&amp; author = john)是一个链接,您可以单击该链接并将其重定向到诗歌详细信息页面。 (让我们说,/诗/ 1234 /这是最好的诗)
现在我想&#34; prev&#34;和&#34; next&#34;如果从搜索结果页面单击页面,则在详细信息页面上显示链接。它使用与搜索结果相同的顺序。
我能想到的是将完整的搜索参数添加到详细信息页面,因此带有分页的&#34;详细信息页面&#34;实际上是一个搜索结果,但perpage = 1。 但是我每次都要做一个完整的查询,显示一个诗的详细页面。
我想知道有更好的方法吗?
感谢并为我糟糕的英语道歉。
答案 0 :(得分:1)
至于Solr部分,你可以使用DeepPaging,看看这里: http://heliosearch.org/solr/paging-and-deep-paging/
当您使用DeepPaging时,您会从Solr获得'cursorMark' 就像你的下一个查询结果的书签一样。
您将不得不重新查询,但您将使用该标志保持相同的结果集, 因此,当您只为下一个文档执行此操作时,您必须只获得一行, 记住你当前的位置从哪里开始, 保存光标标记并重复下一步。
通过记住之前的cursorMark,你也可以回去。
此致
马库斯
答案 1 :(得分:0)
你必须从数据库中获取这首诗的细节。但其余参数可以从列表页面传递,包括在分页列表中检索的诗片ID的列表(数组)。您可以使用它直到到达列表末尾,以检索下一页列表。
您可能还想考虑服务器上可用的缓存选项。 APC扩展在PHP上很常见。