淘淘商城——使用SolrJ管理Solr集群

首先,大家肯定是要先搭建Solr集群的,关于Solr集群的搭建,我的淘淘商城系列——Solr集群搭建这篇博客已经做了非常详细的说明,大家可以参考搭建。
刚搭建好的Solr集群,是没有任何索引数据的,如下图所示。
这里写图片描述
接下来,我们就使用SolrJ来管理Solr集群。首先看看怎么向索引库中添加文档,我们在taotao-search-service工程的src/test/java目录下的com.taotao.solrj包中新建一个TestSolrCloud单元测试类,然后编写一个测试方法,如下图所示。
这里写图片描述
为方便大家复制,现把TestSolrCloud单元测试类的代码贴出。

public class TestSolrCloud {

    @Test
    public void testSolrCloud() throws Exception {
        // 操作步骤:
        // 第一步,创建一个SolrServer对象,需要使用CloudSolrServer子类对象,它有一个构造方法,
        // 构造方法有一个参数,叫做zkHost,是一个字符串类型,也即zookeeper的地址列表
        CloudSolrServer solrServer = new CloudSolrServer("192.168.25.129:2181,192.168.25.129:2182,192.168.25.129:2183");
        // 第二步,需要指定默认的collection
        solrServer.setDefaultCollection("collection2");
        // 第三步,向索引库中添加文档,和单机版一致
        SolrInputDocument document = new SolrInputDocument();
        document.setField("id", "1");
        document.setField("item_title", "测试商品");
        document.setField("item_price", "199");
        solrServer.add(document);
        // 第四步,提交
        solrServer.commit();
    }

}

testSolrCloud方法执行成功后,我们到Solr集群中查询,发现可以查到我们刚才添加的记录,如下图所示。
这里写图片描述
下面我们来看看如何从索引库中删除文档,就把刚才向索引库中添加的文档删除掉。在TestSolrCloud单元测试类编写一个测试方法,如下图所示。
这里写图片描述
为方便大家复制,现把TestSolrCloud单元测试类中testDeleteDocument方法的代码贴出。

// 删除文档
@Test
public void testDeleteDocument() throws Exception {
    // 第一步,创建一个SolrServer对象,应该使用CloudSolrServer对象,它有一个构造方法,
    // 构造方法有一个参数,叫做zkHost,是一个字符串类型,也即zookeeper的地址列表
    CloudSolrServer solrServer = new CloudSolrServer("192.168.25.129:2181,192.168.25.129:2182,192.168.25.129:2183");
    // 第二步,需要指定默认的collection
    solrServer.setDefaultCollection("collection2");
    solrServer.deleteByQuery("*:*");
    solrServer.commit();
}

以上方法执行成功后,我们到Solr集群中查询,可以发现我们刚才添加的记录已经被删除掉了,如下图所示。
这里写图片描述

猜你喜欢

转载自blog.csdn.net/a_blackmoon/article/details/80494453