Solr dih pagination с использованием лицензированных запросов процессов только один кусокJAVA

Программисты JAVA общаются здесь
Anonymous
Solr dih pagination с использованием лицензированных запросов процессов только один кусок

Сообщение Anonymous »

Я индексирую представление на основе SQL в Solr, используя DataImporThandler (DIH), пытаясь реализовать страницу с использованием ROW_NUMBER () в запросе. Цель состоит в том, чтобы выбрать импорт путем прохождения параметров запуска и строк для больших наборов данных. Несмотря на то, что у меня есть петля в Java, которая должна проходить через все куски, остальные не вызывают дополнительного импорта. Ошибки не появляются, и статусные поджигания для чанка говорят, что он успешно завершен. фрагмент кода Java, который проходит через куски:
int start = 200;
int totalRowsFetched = 809;

getSolrConfigsXmlBuilder().buildDataConfigFile(orgData, dataConfigXmlPath, dbInfo, coreData.getOrgId(), fullImport, useTempView);

while (start < totalRowsFetched) {
int adjustedRows = Math.min(DEFAULT_BATCH_SIZE, totalRowsFetched - start);

ModifiableSolrParams params = new ModifiableSolrParams();
String indexType = SOLR_INDEX_TYPE_FULL;

params.set(SOLR_QUERY_PARAM_QT, SOLR_QUERY_PARAM_DATAIMPORT);
params.set(SOLR_QUERY_PARAM_SYNCHRONOUS, syncImport);// false

if(!fullImport) {
indexType = SOLR_INDEX_TYPE_DELTA;
params.set(SOLR_QUERY_PARAM_CLEAN, Boolean.FALSE.toString());
}
params.set(SOLR_QUERY_PARAM_COMMIT, Boolean.TRUE.toString());
params.set(SOLR_QUERY_PARAM_COMMAND, SOLR_QUERY_PARAM_FULL_IMPORT);
params.set(SOLR_QUERY_PARAM_START, String.valueOf(start));
params.set(SOLR_QUERY_PARAM_ROWS, String.valueOf(adjustedRows));

log.info(String.format("Chunked import: Start=%d, Rows=%d for core %s", start, DEFAULT_BATCH_SIZE, coreData.getCoreName()));

QueryResponse queryResponse;
log.info(String.format("Starting '%s' index of Solr core: [%s]", indexType, coreData.getCoreName()));
queryResponse = getTemplate().getSolrClientOrDefault(coreData.getSolrServerAddress()).query(coreData.getCoreName(), params);

String statusMessages = "";
if(queryResponse != null && queryResponse.getResponse() != null
&& queryResponse.getResponse().get("statusMessages") != null) {
statusMessages = queryResponse.getResponse().get("statusMessages").toString();
}
log.info("Chunk import completed: " + statusMessages);
start += adjustedRows;
}
response = new FipSolrAdminResponse(FipSolrAdminResponse.ResponseCodeType.SUCCESS, "All chunks processed successfully.",String.format("Solr Index for core/collection [%s] has been successfully created", coreData.getCoreName()));
< /code>
Что я попробовал: < /strong> < /p>
  • Проверено, что запуск и строки устанавливаются и увеличиваются правильно
    в цикле. Он обрабатывает только одну партию.

Вопрос:

Как я могу заставить Solr DIH обрабатывать все страстные пирожные куски, используя этот подход QUERY () () () ()? Есть ли что -то в параметрах DIH или Solr запроса, которые мне не хватает? Должны ли обработка команды DIH или запроса отличаться, чтобы разрешить несколько разбитых импортов в одном процессе?
>

Подробнее здесь: https://stackoverflow.com/questions/796 ... -one-chunk

Вернуться в «JAVA»