Invoke data import handler(DIH) from SolrJ

在SolrJ中有两种SolrServer的具体实现:HttpSolrServer, EmbeddedSolrServer.

- HttpSolrServer通常是用于对部署在web container中的solr instance发起query/index请求;

- EmbeddedSolrServer无需web container, 可以嵌入到任何Java 应用程序中,而且不需要引入Solr webapp依赖的众多的jars.


EmbeddedSolrServer适合对集成Solr功能的Java 应用程序做单元/集成测试。 EmbeddedSolrServer能够实现HttpSolrServer的大部分功能,它们继承了来自SolrServer的相同接口。


测试发现:

1. EmbeddedSolrServer 在实例化时需要指定solr.solr.home 环境变量,初始化solr core成功后,即可查询core中的index

        System.setProperty("solr.solr.home", "F:/SolrHomeN");

        final CoreContainer container = new CoreContainer();
        container.load();

        server = new EmbeddedSolrServer(container, "runlog");


2. 在使用EmbeddedSolrServer情况下,使用data import handler构建索引遇到麻烦, 索引更新不成功

    网上的示例代码:

    final ModifiableSolrParams params = new ModifiableSolrParams();
    params.set("qt", "/dataimport");
    params.set("command", "full-import");
    params.set("clean", "true");
    params.set("commit", "true");
    server.query(params);


    解决办法:增加debug=true参数后,更新成功。但不明白具体缘由。

   params.set("debug", "true");

   注意:上述代码片段在HttpSolrServer的情况下,工作正常。

   


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值