您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 冶金工业 > solr配置和solrj使用(demo)
1Solr1.4.1(现最新版为3.4.0版)配置和SolrJ使用一、Solr基本安装和配置1,从官网镜像服务器下载最新版本apache-solr-1.4.1。下载地址:并解压缩2,在D盘建立一个SolrHome文件夹来存放solr的配置文件等,例如:在D盘WORK目录下穿件一个SolrHome文件夹:D:\WORK\SolrHome,3,在刚解压的apache-solr-1.4.1,找到apache-solr-1.4.1\example下找到solr文件夹,复制到SolrHome下.4,将apache-solr-1.4.1\dist\apache-solr-1.4.1.war中的apache-solr-1.4.1.war复制到tomcat中的\webapps下并重命名为solr,启动tomcat,解压war包后,停止tomcat.5,在解压后的solr中找到web.xml,打开:将env-entry-value的值设为SolrHome的目录地址env-entryenv-entry-namesolr/home/env-entry-nameenv-entry-valueD:\WORK\SolrHome\solr/env-entry-valueenv-entry-typejava.lang.String/env-entry-type/env-entry6,在D:\WORK\SolrHome\solr\conf找到solrconfig.xml文件,打开,修改dataDir${solr.data.dir:./solr/data}/dataDir其中solr.data.dir存放的是索引目录.7,添加中文支持,修改tomcat的配置文件server.xml,如下:Connectorport=80protocol=HTTP/1.1maxThreads=150connectionTimeout=20000redirectPort=8443URIEncoding=UTF-8/8,启动tomcat,IE中输入:即可浏览solr服务器.二、Solr服务器复制的配置1,首先测试在本机上开启三个tomcat的服务器:一个端口是80,另一个是98882,按照标题一的配置对第二和第三个tomcat服务器进行类似的配置,注意SolrHome的目录不要相同即可,其他的配置不变.例如:以本机为例tomcat命名URLSolrHome目录URIweb.xml配置tomcat0(master):\WORK\SolrHome\solrenv-entry-valueD:\WORK\SolrHome\solr/env-entry-valuetomcat1(slave):\WORK\SolrHome\solrenv-entry-valueE:\WORK\SolrHome\solr/env-entry-valuetomcat2:\WORK\SolrHome\solenv-entry-valueF:\WORK\SolrHome\solr/e2(salve)rnv-entry-value3,以上两步配置好之后,在主服务器tomcat0(master)的SolrHome中找到solrconfig.xml文件,加入如下配置.requestHandlername=/replicationclass=solr.ReplicationHandlerlstname=masterstrname=replicateAftercommit/strstrname=replicateAfterstartup/strstrname=confFilesschema.xml,stopwords.txt/str/lst/requestHandler在从服务器tomcat1(slave)和tomcat1(slave)的SolrHome中找到solrconfig.xml文件加入如下配置:requestHandlername=/replicationclass=solr.ReplicationHandlerlstname=slavestrname=masterUrl=pollInterval00:00:60/str/lst/requestHandler4,在tomcat0上创建索引,使用客户端solrj创建索引,jar包在apache-solr-1.4.1压缩包中.代码如下:publicclassSlorTest3{privatestaticCommonsHttpSolrServerserver=null;//privatestaticSolrServerserver=null;publicSlorTest3(){try{server=newCommonsHttpSolrServer();server.setConnectionTimeout(100);server.setDefaultMaxConnectionsPerHost(100);server.setMaxTotalConnections(100);}catch(IOExceptione){e.printStackTrace();}}@TestpublicvoidtestIndexCreate(){ListSolrInputDocumentdocs=newArrayListSolrInputDocument();for(inti=300;i500;i++){SolrInputDocumentdoc=newSolrInputDocument();doc.addField(zjid,i);//需要在sechma.xml中配置字段3doc.addField(title,云状空化多个气泡的生长和溃灭);doc.addField(ssid,ss+i);doc.addField(dxid,dx+i);docs.add(doc);}try{server.add(docs);server.commit();System.out.println(----索引创建完毕!!!----);}catch(SolrServerExceptione){e.printStackTrace();}catch(IOExceptione){e.printStackTrace();}}}5,分别启动三台tomcat服务器.打开IE浏览器分别输入:其中localhost=192.168.169.121点击即可从主solr服务器上复制索引三、Solr服务器分发(shard)配置1,开启四台tomcat服务器,其中三台在本机上,一台在远端.清单如下:注意:四台服务器的配置要相同.其中的schema.xml字段配置一定要一致.NameURLSolrHome目录URItomcatQuery:\WORK\SolrHome\solrtomcat0(shard):\WORK\SolrHome\solrtomcat1(shard):\WORK\SolrHome\solr4tomcat2(shard):\WORK\SolrHome\solr2,配置较简单,只需要在tomcatQuery上的SoleHome的solrconfig.xml文件中修改其他的solr服务器不需要配置。requestHandlername=standardclass=solr.SearchHandlerdefault=true!--defaultvaluesforqueryparameters--lstname=defaultsstrname=echoParamsexplicit/strstrname=shardslocalhost:9088/solr,localhost:9888/solr,192.168.169.48:9888/solr/str!--intname=rows10/intstrname=fl*/strstrname=version2.1/str--/lst/requestHandler3,使用slorj的清除原有的索引.或者手动删除。4,编写代码,将lucene建立的索引(1G左右,874400条记录),按照比例通过solrj分发到三台solr(shard)服务器上,代码如下:publicclassIndexCreate{privatestaticCommonsHttpSolrServerserver;publicCommonsHttpSolrServergetServer(StringhostUrl){CommonsHttpSolrServerserver=null;try{server=newCommonsHttpSolrServer(hostUrl);server.setConnectionTimeout(100);server.setDefaultMaxConnectionsPerHost(100);server.setMaxTotalConnections(100);}catch(IOExceptione){System.out.println(请检查tomcat服务器或端口是否开启!);}returnserver;}@SuppressWarnings(deprecation)publicvoidreaderHostCreate(String[]hosts)throwsCorruptIndexException,IOException{IndexReaderreader=IndexReader.open(c:\\index);System.out.println(总记录数:+reader.numDocs());inthostNum=hosts.length;intlengh=reader.numDocs()/hostNum;//根据主机数平分索引长度intj=reader.numDocs()%hostNum;//取余5for(inti=0;ihosts.length;i++){longstartTime=newDate().getTime();Stringurl=hosts[i].substring(hosts[i].indexOf(//)+2,hosts[i].lastIndexOf(/));System.out.println(第+(i+1)+次,在主机:+url+上创建索引,创建时间+newDate());if(i==(hosts.length-1)){hostlist(reader,lengh*i,lengh*(i+1)+j,hosts[i]);}else{hostlist(reader,lengh*i,lengh*(i+1),hosts[i]);}System.out.println(结束时间+newDate());longendTime=newDate().getTime();longms=(endTime-startTime)%60000-(((endTime-startTi
本文标题:solr配置和solrj使用(demo)
链接地址:https://www.777doc.com/doc-4945131 .html