solr使用cursorMark做深度分页
来源:互联网 发布:怎么在淘宝上做充值 编辑:程序博客网 时间:2024/06/06 09:08
深度分页
深度分页是指给搜索结果指定一个很大的起始位移。
普通分页在给定一个大的起始位移时效率十分低下,例如start=1000000,rows=10的查询,搜索引擎需要找到前1000010条记录然后再返回最后10条。Solr为了最后10条记录只会检索排序字段,但是前1000010条记录的内部排序开销依然十分大。
普通分页基础上的深度分页对分布式搜索引擎而言甚至是更低效的,因为为了找到正确的10条记录,来自各个分片的前1000010条记录的排序字段需要被返回和聚合在一个聚合节点。
使用cursorMark(游标记录)
cursorMark参数允许高效地在大结果集上遍历。它可以在单点或分布式搜索引擎上工作。
怎样使用cursorMark:
1.排序必须包括id字段的严格排序策略,这防止了用lucene记录id做内部排序导致的排序中存在相等的情况。
2.任何包括cursorMark的调用start字段必须是0。
3.第一次请求时传递cursorMark=*。
4.Solr的返回结果中会有nextCursorMark,在下次调用时简单地使用这个值作为cursorMark以继续结果集的分页。
深度分页curosrMark实现时要注意的点
1.cursorMark参数自身包含了所有的必要状态,没有服务端的状态。
2.start参数总是返回0,这取决于客户端指出要展示的是什么位置。
3.没必要使用cursorMark排序到底,因为服务端没有保存状态,随时都可以终止排序。
4.你有两种方法知道搜索结果的排序到底了,没有返回和你请求的一样的行数,或者返回的coursorMark和你传递的一样(此时返回的行数为0)。
5.尽管start参数必须是0,每次调用都可以变换row值。
6.修改返回字段和facet字段时,cursorMark也是可以重用的。
7.客户端可以通过再次提交之前的cursorMark高效地往回翻页。
0 0
- solr使用cursorMark做深度分页
- Solr 深度分页
- Solr中使用游标进行深度分页查询以提高效率(适用的场景下)
- 项目中如何使用solr(续)--分页
- 使用top做sql分页
- solr的增删改查加分页的基本使用
- 在 Rails 中使用 Solr 做全文搜尋
- solr分页查询
- 使用JSTL做的分页程序
- oracle使用rownum做分页查询
- 使用coreseek并为其做分页
- java项目使用pageHelper做分页
- Solr Deep Paging(solr 深分页)
- solr使用
- solr 使用
- solr使用
- 使用scroll实现Elasticsearch数据遍历和深度分页
- Solr之分页查询-yellowcong
- vector作为参数传递的几种情况
- MapReduce入门学习心得
- django静态文件服务器的配置
- 数数字(51nod 1770)
- ffmpeg 2.6.3在Windows系统MinGW的编译
- solr使用cursorMark做深度分页
- ibatis3中直接在xml中写明一对多的关系和利用ibatis的拦截器进行SQL重组达到分页的目的
- Hibernate应用开发步骤(学习笔记)
- 指针变量的理解! 课堂笔记
- python测试多空交易效果代码
- Android studio修改包
- mysql-5.7.12-winx64非安装版 安装中遇到的问题小结
- vertica-使用dbvis工具报I O错误
- 1.python基础知识