首页 > 解决方案 > 为 Solr 深度分页生成的光标标记是否确定?

问题描述

如果我使用 Solr

query=q with cursorMarks='*'

可以说,当我遍历这些页面时,Solr 会生成一系列光标标记

[CM1, CM2, CM3, ... , CM100].

如果我在 CM3 停止我的 Solr 深度分页遍历,我是否能够从 CM4 开始恢复它?简而言之,Solr 生成的一系列 cursorMarks - 只要查询保持不变并且 Solr 文档的基础索引群体没有改变,它们是否是确定性的?

标签: solr

解决方案


是的,只要

  1. 您在查询中定义了一个排序(并且该排序在每个寻呼调用中都是固定的)
  2. 排序有一个本身是确定性的决胜局(例如,如果存在复制,则在 SolrCloud 环境中是唯一 ID 但不是文档 ID)
  3. 正如你所说,基础索引文件没有改变

根据https://badrit.com/blog/2015/7/26/deep-paging-and-partial-index-export-in-solr#.XE9snc9KiNE

“深度分页取决于‘光标’概念,它是一个 Base64 字符串,表示排序值的有序空间中的一个逻辑点”

这也是值得一读的http://yonik.com/solr/paging-and-deep-paging/


推荐阅读