r - 使用 SOLR 和 R 的简单深度分页示例
问题描述
我需要使用 R 和 solr 包执行深度分页。SOLR 7.2.1 服务器,R 3.4.3
我不知道如何从结果数据框中获取 nextCursorMark 。我通常在 Python 中执行此操作,但这让我很困惑。
res <- solr_all(base = myBase, rows = 100, verbose=TRUE,
sort = "unique_id asc",
fq="*:*",
cursorMark="*"
)
我无法从结果中获得 nextCursorMark。任何帮助,将不胜感激。
我注意到,如果我将 nextCursorMark 添加到 pageDoc,如果 parsetype 设置为 json,它将返回该值,而不是数据框。所以我猜另一部分是 - 如果你返回一个数据框,那个值在哪里?
解决方案
所以我终于找到了一种方法来完成这项工作。这不是最优的,最终的解决方案在评论中引用的 github 问题中。但这有效:
dat <-"http://yadda.com"
cM = "*"
done = FALSE
rowCount = 0
a <- data.frame()
while (!done)
{
Data <- solr_search(base = dat, rows = 100, verbose=FALSE,
sort = "unique_id asc",
fq="*:*",
parsetype="json",
cursorMark=cM,
pageDoc = "nextCursorMark"
)
if (cM == Data$nextCursorMark) {
done = TRUE
} else {
cM = Data$nextCursorMark
}
a <- append(x = a, Data$response$docs)
rowCount = rowCount + length(Data$response$docs)
print(rowCount)
}