二:搭建solr集群并测试(技术版本:jdk1.8.0_144,apache-tomcat-8.5.23,solr-7.0.0)
1.首先搭建4个tomcat和,修改下面的端口(8080~8083)
2.向每个tomcat部署各solr并配置solrHome
3.在每个solrHome文件下面编辑solr.xml
(其中host配置ip,hostPort配置每个solr自身的tomcat端口)
4.把配置文件上传到zookeeper,需要到solr-7.0.0/server/scripts/cloud-scripts使用zkcli.sh上传,如:
这个以一个core为例,想把coreName为core里的conf配置文件上传到上面去
./zkcli.sh -zkhost 192.168.1.103:2181,192.168.1.103:2182,192.168.1.103:2183 -cmd upconfig -confdir /www/solrHome1/core/conf -confname myconf
5.查看zookeeper里面是否有这个文件
随便去个zookeeper文件中的bin文件下面有个zkCli.sh,执行./zkCli.sh
,然后就能查看里面的文件是否有我们上传了的
6.现在去每个tomcat目录下面bin文件夹编辑catalina.sh加上
JAVA_OPTS="-DzkHost=192.168.1.103:2181,192.168.1.103:2182,192.168.1.103:2183"
7.启动每个tomcat
8.可能这个集群不是你collection1不是你们想要的,那就重新创建个
http://192.168.1.103:8080/solr/admin/collections?action=CREATE&name=collection2&numShards=1&replicationFactor=4
也可以手动编辑创建
9.如果collection2不是想要的也能删除
http://192.168.1.103:8080/solr/admin/collections?action=DELETE&name=collection2
也可以手动删除
10.现在写个测试类,首先jar包至少是solr7.0.0版本(小编被这个坑了一晚上)
public class Solrtest {
public static void main(String[] args) throws Exception {
String str = "192.168.1.103:2181,192.168.1.103:2182,192.168.1.103:2183";
CloudSolrClient solrServer = new CloudSolrClient.Builder().withZkHost(str).build();
//设置默认的collection
solrServer.setDefaultCollection("collection1");
//创建一个文档对象
SolrInputDocument document = new SolrInputDocument();
document.addField("id", "test01");
document.addField("item_title", "title1");
//添加文档
solrServer.add(document);
//提交
solrServer.commit();
}
}