在db-data-config.xml(solr)中更新SQL命令

时间:2011-06-15 21:37:06

标签: indexing solr

是否可以在db-data-config.xml中放入更新SQL命令,用于在solr中进行索引?

我需要在数据库列中保存最后一个成功的solr索引日期戳。如果我可以包含更新SQL命令作为solr db-data-config.xml文件的一部分,我可以完成此任务。

是否可以替代此要求?

1 个答案:

答案 0 :(得分:2)

您不能直接在db-data-config.xml中执行此操作。你可以做的是使用EventListener。为此,您必须编写一个继承EventListner接口的类,并在'onEvent'上执行update命令。如果您可以访问上下文参数,那么您可以将其设置为通用并从配置文件中读取命令。

为此,请创建一个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>