我想使用Solr作为我的网站作为搜索引擎,并且我试图了解基本分页和深度分页与光标标记之间的区别。Solr光标标记和分页
据我了解,如果您使用基本分页和每页20个结果查询1001的页面会出现这种情况:
- 的Solr将找到的第一个1000 * 20匹配结果
- 显示1001页的下20条结果
我想问题是当有人点击下一页时。 Solr会首先找到1001 * 20结果,然后显示所需的结果。
我还没有看到一个适合大数量深度分页的例子。只有少数人,所以我不确定这一点。有人可以澄清一下吗?
下面的例子是否正确?
.../query?q=id:book*&sort=pubyear_i+desc,id+asc&fl=title_t,pubyear_i&rows=1&cursorMark=*
这让我有“nextCursorMark”:“AoJcfCVib29rMg ==”
现在,我有我nextCursorMark可以去找到我想要的页面。 现在我应该手动浏览页面吗?我应该创建一个循环来搜索我想要的特定页面吗?
或者我应该有20000行的第一个查询,获取下一个CursorMark,然后与另一个只有20行的查询使用它?
我发现用20000行运行某个查询以获得下一个CursorMark有点奇怪。这是做正确的方法吗?
那么,如果您有10页,并且用户想要从第1页点击第5页,该怎么办?我是否需要手动浏览每个页面才能到达那里?
编辑:
我已阅读本:How to manage "paging" with Solr?
试图找到工作的例子,但不能。
谢谢你的链接。我通过它的文档阅读了很多,但由于某种原因找不到那篇文章。因此,举例来说,如果我想创建分页,我会需要经过所有的结果第一,让所有的cursorMarks并与页码绑定呢?如果我有1000页,我不会在分页显示1000个按钮,但也许我想要一个链接到最后一页或最后2-3页。是通过所有结果并将光标绑定到每个页面按钮的最佳解决方案吗? –
不,这个想法是,你用cursorMark的人是通过你的结果集分页。文件总数可以被检索一次,以产生分页信息(“哦,有可用于该查询5000个文档)。要直接跳到文档x个,做分页可能会更好(或者你可以使用cursorMark的传统方式具有更多行数,然后将自己分页到该结果集中)。 – MatsLindh