Простой пример глубокой пагинации с использованием SOLR и R - PullRequest
0 голосов
/ 14 мая 2018

Мне нужно выполнить глубокое разбиение на страницы, используя 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, но не в dataframe.Так что я думаю, другая часть - где это значение, если вы возвращаете фрейм данных?

1 Ответ

0 голосов
/ 15 мая 2018

Итак, я наконец-то нашел способ сделать эту работу.Это не оптимально, окончательное решение - в проблеме 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)
}
...