【问题标题】:update SQL command inside db-data-config.xml (solr)更新 db-data-config.xml (solr) 中的 SQL 命令
【发布时间】:2011-09-15 22:07:04
【问题描述】:

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

我需要将上次成功的 solr 索引日期戳保存在数据库列中。如果我可以在 solr db-data-config.xml 文件中包含一个更新 SQL 命令,我就可以做到这一点。

是否有替代此要求的方法?

【问题讨论】:

    标签: indexing solr


    【解决方案1】:

    您不能直接在 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>
    

    【讨论】:

    • 有没有这样做的例子?
    猜你喜欢
    • 2011-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多