使用Cusor进行Apache Solr中的下一次和之前的安装

时间:2015-08-25 17:49:50

标签: php apache solr pagination

我一直在尝试使用Cursorsdocument)制作“下一个”和“上一个”分页。我觉得很奇怪,在返回的数据中没有prevCursorMark而不是nextCursorMark。它使得实现next和prev分页非常困难。

我想到了将前一个nextCursorMark请求存储为上一页指针的想法。但是我觉得它不像单纯prevCursorMark那样可靠。

使用PHP Solr扩展的示例代码

  $query_response = $client->query($solrQuery);

  $data = $query_response->getResponse();

  $nextCursorMark = $data['nextCursorMark'];

  $prevCursorMark = isset($_GET['nextResult'])?
                    htmlspecialchars($_GET['nextResult']):'*';


  $pager = "<a href='index?1=1&nextResult=$prevCursorMark' class='page5 no_ajax'>Prev</a>
            <a href='index?1=1&nextResult=$nextCursorMark' class='page5 no_ajax'>Next</a>";

所以这是我的问题:Cursors中的Solr是否提供了一个优秀的标记?是否可以使用Cursors进行下一个和之前的分页?

1 个答案:

答案 0 :(得分:1)

截至solr 5.2,它不提供任何previous cursor mark。如果您想在应用程序中为下一个和上一个链接提供分页。您可以可靠地存储和使用solr返回的nextCursorMark值。您可以重新提交nextCursorMark值,更改其他内容,例如返回的存储字段或分面的字段。 cursorMark参数本身包含所有必需的状态。没有服务器端状态。