Я повторяю весь solr, используя solrj. Solr вернет мне страницу с записями uuid, и я проверяю uuid в моем хранилище Fedora Commons. Я хочу повторить весь solr, в моем случае это может занять до одной недели до 100 *. До сих пор он работал 3 дня, а затем произошел сбой при ошибке, не связанной с solr.
Итак, я спрашиваю, есть ли способ, как запустить поиск по какой-то определенной c странице результатов? Допустим, я всегда буду регистрировать свою последнюю страницу, поэтому в следующий раз, когда моя программа завершится сбоем, мне не нужно будет запускать ее с самого начала, но вместо этого я буду запускать ее с последней страницы, на которой произошла ошибка моей программы. Кто-нибудь может помочь? Спасибо.
Как я повторяю solr:
for (String model : models) {
try {
//SOLR
final String solrUrl = "http://localhost:1234/solr/test";
HttpSolrClient solr = new HttpSolrClient.Builder(solrUrl).build();
solr.setParser(new XMLResponseParser());
SolrQuery query = new SolrQuery();
query.setQuery("fedora." + model);
query.setRows(10);
query.addSort("PID", SolrQuery.ORDER.asc);
String cursorMark = CursorMarkParams.CURSOR_MARK_START;
boolean done = false;
while (!done) {
query.set(CursorMarkParams.CURSOR_MARK_PARAM, cursorMark);
QueryResponse rsp = solr.query(query);
String nextCursorMark = rsp.getNextCursorMark();
for (SolrDocument doc : rsp.getResults()) {
....I do something with result
}
if (cursorMark.equals(nextCursorMark)) {
done = true;
}
cursorMark = nextCursorMark;
}
solr.close();
} catch (SolrServerException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}