本文共 5497 字,大约阅读时间需要 18 分钟。
平台:linux
第一步,安装solr
注意,服务tomcat需要新开,不能配置其它干扰
linux虚拟机需要关闭防火墙
由于solr是嵌入到虚拟机的tomcat中,所以需要访问虚拟机中的solr。而应用开发使用window平台。
- 配置pom.xml,添加solr相关的jar包
org.apache.solr solr-solrj 4.9.1 org.apache.httpcomponents httpclient 4.4.1 org.apache.httpcomponents httpcore 4.4.1 org.apache.httpcomponents httpmime 4.4.1 org.noggit noggit 0.6 commons-io commons-io 1.4 org.codehaus.woodstox stax2-api 3.1.4 org.codehaus.woodstox woodstox-core-asl 4.4.1 org.slf4j slf4j-simple 1.7.7 commons-logging commons-logging 1.0.4
import org.apache.solr.client.solrj.SolrQuery;import org.apache.solr.client.solrj.SolrServer;import org.apache.solr.client.solrj.impl.HttpSolrServer;import org.apache.solr.client.solrj.response.QueryResponse;import org.apache.solr.common.SolrDocument;import org.apache.solr.common.SolrDocumentList;import org.apache.solr.common.SolrInputDocument;import org.junit.Test;public class SolrJTest { @Test public void addDocument() throws Exception { //创建一连接 SolrServer solrServer = new HttpSolrServer("http://192.168.116.7:8080/solr"); //创建一个文档对象 SolrInputDocument document = new SolrInputDocument(); document.addField("id", "test001"); document.addField("title", "贸易战"); document.addField("context", "中国与美国的贸易战已经..."); //把文档对象写入索引库 solrServer.add(document); //提交 solrServer.commit(); } @Test public void deleteDocument() throws Exception { //创建一连接 SolrServer solrServer = new HttpSolrServer("http://192.168.116.7:8080/solr"); //两种删除方式 solrServer.deleteById("test001"); //solrServer.deleteByQuery("*:*"); solrServer.commit(); } @Test public void queryDocument() throws Exception { SolrServer solrServer = new HttpSolrServer("http://192.168.116.7:8080/solr"); //创建一个查询对象 SolrQuery query = new SolrQuery(); //设置查询条件 query.setQuery("*:*"); query.setStart(20); query.setRows(50); //执行查询 QueryResponse response = solrServer.query(query); //取查询结果 SolrDocumentList solrDocumentList = response.getResults(); System.out.println("共查询到记录:" + solrDocumentList.getNumFound()); for (SolrDocument solrDocument : solrDocumentList) { System.out.println(solrDocument.get("id")); System.out.println(solrDocument.get("title")); System.out.println(solrDocument.get("context")); } }}
构建SolrCloud集群
SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud。当一个系统的索引数据量少的时候是不需要使用SolrCloud的,当索引量很大,搜索请求并发很高,这时需要使用SolrCloud来满足这些需求。
环境配置
第一步、zookeeper集群安装
tar -zxvf zookeeper-3.4.6.tar.gz
将zookeeper-3.4.6拷贝到/opt/sxt/soft下并将目录 名改为zookeeper至此zookeeper的安装目录为/usr/local/zookeepercp zoo_sample.cfg zoo.cfg
,修改zoo.cfg配置 ./zkServer.sh start
;查看集群状态./zkServer.sh status
。刚启动可能会有错误,应为各服务器之间需要进行通信判断,等待一段时间,集群中其他节点一并起来后就正常了 sh /opt/sxt/soft/solr-4.9.1/example/scripts/cloud-scripts/zkcli.sh -zkhost 192.168.116.5:2181,192.168.116.6:2181,192.168.116.7:2181 -cmd upconfig -confdir /opt/sxt/soft/solr-4.9.1/example/solr/collection1/conf -confname myconf -solrhome /opt/sxt/soft/solr-4.9.1example/solr
主要就是修改是哪个路径和三个ip JAVA_OPTS="-DzkHost=192.168.116.5:2181,192.168.116.6:2181,192.168.116.7:2181"
,关闭tomcat,重启 转载地址:http://lqepi.baihongyu.com/