是否可以在db-data-config.xml中放入更新SQL命令,用于在solr中进行索引?
我需要在数据库列中保存最后一个成功的solr索引日期戳。如果我可以包含更新SQL命令作为solr db-data-config.xml文件的一部分,我可以完成此任务。
是否可以替代此要求?
答案 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>