обновить команду SQL внутри db-data-config.xml (solr) - PullRequest
1 голос
/ 16 июня 2011

Можно ли поместить команду обновления SQL в db-data-config.xml, используемый для индексации в solr?

Мне нужно сохранить последний успешный штамп даты индексации в столбце базы данных. Если бы я мог включить команду обновления SQL как часть файла solr db-data-config.xml, я мог бы сделать это.

Есть ли альтернатива этому требованию?

1 Ответ

2 голосов
/ 16 июня 2011

Вы не можете сделать это напрямую в db-data-config.xml. Что вы можете сделать, это использовать EventListener . Для этого вам нужно написать класс, который наследует интерфейс EventListner, и выполнить команду обновления для: «onEvent». В случае, если у вас будет доступ к контекстным параметрам, вы сможете сделать их общими и прочитать вашу команду из файла конфигурации.

Для этого создайте EventListner:

package se;

import org.apache.solr.handler.dataimport.Context;
import org.apache.solr.handler.dataimport.EventListener;


public class DataImportEndEventListner implements EventListener {

    /* (non-Javadoc)
     * @see org.apache.solr.handler.dataimport.EventListener#onEvent(org.apache.solr.handler.dataimport.Context)
     */
    @Override
    public void onEvent(Context ctx) {
        //read config
        ctx.getRequestParameters().get("parameter-name").toString());

        try
        {
            // Do what you want
        }
        catch(Exception ex)
        {
            // handle error
        }
    }

}

и зарегистрируйте его в db-data-config.xml:

<dataConfig>
<document onImportEnd="se.DataImportEndEventListner">
....
</document>
</dataConfig>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...