Импорт дельты Solr DIH с составными первичными ключами?

Мой источник данных Solr является базой данных SQL, где первичный ключ является составным (т.е. это - два поля).

Это хорошо для моего основного DIH query, Я просто связываю поля, и это становится моим первичным ключом Solr. Однако неясно из документации, как я записал бы запрос импорта дельты для поддержки этого.

Документация предлагает, чтобы мне были нужны два запроса - один для нахождения первичного ключа измененных строк, и другой к затем на самом деле получает отдельные документы, соответствующие каждому из тех ключей. Нет никакого примера, показывающего это для первичных ключей все же.

Идеально я не хочу тех двух отдельных запросов вообще, это создало бы меньше нагрузки для базы данных, если бы те два запроса были просто объединены таким образом что единственная разница между query и deltaQuery WHERE пункт, который фильтрует на основе last_changed.

Так, если мое основное query :

SELECT key1 || key2 as pk FROM table

Что было бы соответствующее deltaQuery (и/или deltaImportQuery) быть похожими?

Я пытался просто добавить WHERE пункт, но после запроса работал, я получил предупреждение о пропавших без вести deltaImportQuery и затем исключение нулевого указателя.

6
задан Alnitak 1 August 2011 в 21:39
поделиться

1 ответ

Есть два запроса для DeltaImport. Первый(deltaQuery) предназначен для определения, что индексировать. Например, в нем мы можем определить, какой ID нам нужен для индексирования. Второй - для определения данных по этим идентификаторам. Посмотрите на мой пример, надеюсь, он вам поможет:

<entity name="address" pk="address_id" query="SELECT * FROM address a" deltaImportQuery="SELECT * FROM address a where a.address_id > ${dataimporter.delta.id}"
            deltaQuery="select address_id as id from address where address_id=101010">

Важной частью deltaImportQuery является ${dataimporter.delta.id}. Вот как мы устанавливаем наш id из deltaQuery в deltaImportQuery.

.
-1
ответ дан 17 December 2019 в 20:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: