首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Solr触发器从Java代码优化和检查进度

Solr触发器从Java代码优化和检查进度
EN

Stack Overflow用户
提问于 2016-01-21 08:21:09
回答 1查看 338关注 0票数 1

从这个topic中,有两种方法可以从Java代码中触发solr优化。

或者发送http请求,或者使用solrj。

但是如何检查它的进展呢?

比如说,返回以百分比表示的优化进度的api

或字符串,如运行/完成/失败。

有这样的api吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-22 20:03:00

是的,solrj中的优化()是一个同步方法。

下面是我用来监视优化过程的内容。

代码语言:javascript
复制
CloudSolrClient client = null;
    try {
        client = new CloudSolrClient(zkClientUrl);
        client.setDefaultCollection(collectionName);
        m_logger.info("Explicit optimize of collection " + collectionName);
        long optimizeStart = System.currentTimeMillis();
        UpdateResponse optimizeResponse = client.optimize();

        for (Object object : optimizeResponse.getResponse()) {
            m_logger.info("Solr optimizeResponse" + object.toString());
        }
        if (optimizeResponse != null) {
            m_logger.info(String.format(
                    " Elapsed Time(in ms) - %d, QTime (in ms) - %d",
                    optimizeResponse.getElapsedTime(),
                    optimizeResponse.getQTime()));
        }
        m_logger.info(String.format(
                "Time spent on Optimizing a collection %s :"
                        + (System.currentTimeMillis() - optimizeStart)
                        / 1000 + " seconds", collectionName));
    } catch (Exception e) {
        m_logger.error("Failed during explicit optimize on collection "
                + collectionName, e);
    } finally {
        if (client != null) {
            try {
                client.close();
            } catch (IOException e) {
                throw new RuntimeException(
                        "Failed to close CloudSolrClient connection.", e);
            }
            client = null;
        }
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34918598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档