Почему Solr deltaImportQuery запускается для каждого идентификатора в '$ {dih.delta. <ID>}' - PullRequest
0 голосов
/ 19 июня 2020

Я использую Solr (8.4.1), и мне нужно загрузить около 6 миллионов данных в режиме полного импорта, а затем каждый день мне нужно выполнять Delta-импорт около 20 тысяч данных. Запрос oracle Pl Sql имеет множество объединений с несколькими таблицами.

Итак, я предпочел писать «запрос», «deltaQuery» и затем «deltaImportQuery» отдельно. Мой "deltaImportQuery" имеет предложение where, которое проверяет '$ {dih.delta.ID}', извлекает измененные данные и обновляет документ .. Согласно документации Solr я прав, и он работает.

Проблема : deltaImportQuery запускается для каждого идентификатора отдельно. Я имею в виду, что если мы обнаружили 20 000 измененных идентификаторов, тогда он сделает 20 000 обращений к базе данных и получит результат. Что очень плохо и требует много времени. Примерно так: Select .... where Id = '${dih.delta.ID}'

Может ли кто-нибудь сказать мне, есть ли способ запустить его, как показано ниже, в этом случае это будет один вызов и займет очень меньше времени.

 Select ... where Id IN '${dih.delta.IDLIST}'

Я уже изучал возможность использования FullImportQuery для deltaImport. Но у меня есть много таблиц, к которым нужно присоединиться, поэтому мне придется поставить множество проверок даты в каждой таблице, что сделает запрос слишком неуклюжим. Пожалуйста, помогите ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...