Solr
Solr是一个开源搜索平台,用于构建搜索应用程序。 它建立在Lucene(全文搜索引擎)之上。 Solr是企业级的,快速的和高度可扩展的。 使用Solr构建的应用程序非常复杂,可提供高性能。
Solr的一些最突出的特点 -
- Restful APIs − 要与Solr通信,并非一定需要有Java编程技能。相反,您可以使用
restful
服务与它通信。可使用文件格式(如xml,json和.CSV
)在Solr
中作为输入文档,并以相同的文件格式获取结果。 - 全文搜索 - Solr提供了全文搜索所需的所有功能,例如令牌,短语,拼写检查,通配符和自动完成。
- 企业准备 - 根据企业/组织的需要,Solr可以部署在任何类型的系统(大或小),如独立,分布式,云等。
- 灵活和可扩展 - 通过扩展Java类并相应配置,可以轻松地定制Solr的组件。
- NoSQL数据库 - Solr也可以用作大数据量级的NOSQL数据库,可以沿着集群分布搜索任务。
- 管理界面 - Solr提供了一个易于使用,用户友好,功能强大的用户界面,使用它可以执行所有可能的任务,如管理日志,添加,删除,更新和搜索文档。
- 高度可扩展 - 在使用Solr与Hadoop时,我们可以通过添加副本来扩展其容量。
- 以文本为中心并按相关性排序 - Solr主要用于搜索文本文档,结果根据与用户查询的相关性按顺序传送
Solr单机版的搭建:
解压solr和tomcat
tar zxf solr-4.10.3.tgz.tgz
tar -zxf apache-tomcat-7.0.47.tar.gz
把solr的war包放到tomcat的webapp目录下
cp solr-4.10.3/dist/solr-4.10.3.war /home/quan/taotao/apache-tomcat-7.0.47/webapps/solr.war
启动tomcat:
bin/startup.sh
tail -f logs/catalina.out
启动成功了
把tomcat进行关闭
bin/shutdown.sh
然后拷贝一些jar包
cp solr-4.10.3/example/lib/ext/* /home/quan/taotao/apache-tomcat-7.0.47/webapps/solr/WEB-INF/lib/
需要配置一下solrhome
cp -r solr-4.10.3/example/solr /home/quan/taotao/solrhome
修改solr工程的web.xml
vim /home/quan/taotao/apache-tomcat-7.0.47/webapps/solr/WEB-INF/web.xml
再重新启动一次Tomcat
再浏览器上访问一下
IP地址:8080/solr
就可以有
这样子solr服务就启动完成了
Solr集群的搭建
搭建Solr集群
首先配置zookeeper集群
先搭建四个tomcat
cp -r apache-tomcat-7.0.47 /home/quan/app/solr-cloud/tomcat01
cp -r apache-tomcat-7.0.47 /home/quan/app/solr-cloud/tomcat02
cp -r apache-tomcat-7.0.47 /home/quan/app/solr-cloud/tomcat03
cp -r apache-tomcat-7.0.47 /home/quan/app/solr-cloud/tomcat04
vim tomcat01/conf/server.xml
vim tomcat02/conf/server.xml
vim tomcat03/conf/server.xml
vim tomcat04/conf/server.xml
给不同的tomcat修改一下端口,tomcat1则改为81开始,tomcat2则82开始,以此类推
把单机版的solr放到tomcat下
cp -r solr /home/app/solr-cloud/tomcat01/webapps/
cp -r solr /home/app/solr-cloud/tomcat02/webapps/
cp -r solr /home/app/solr-cloud/tomcat03/webapps/
cp -r solr /home/app/solr-cloud/tomcat04/webapps/
再复制四个solrhome到solr-cloud目录下
再修改每个solrhome下的solr.xml
注意写自己的端口号和IP地址
修改每个tomcat的solr的web.xml
修改catalina文件
vim tomcat01/bin/catalina.sh
vim tomcat02/bin/catalina.sh
vim tomcat03/bin/catalina.sh
vim tomcat04/bin/catalina.sh
tomcat的catalinda.sh 命令
JAVA_OPTS="-DzkHost=192.168.25.130:2181,192.168.25.130:2182,192.168.25.130:2183"
在solr文件下的example目录下的script目下的cloud-scripts目录下有个zkcli.sh
上传配置文件至zookeeper的命令
./zkcli.sh -zkhost 192.168.25.130:2181,192.168.25.130:2182,192.168.25.130:2183 -cmd upconfig -confdir /home/quan/app/solr-cloud/solrhome01/collection1/conf/ -confname myconf
进入solr-cloud的zookeeper01中的bin目录下进行连接zookeeper
./zkCli.sh -server 192.168.25.130:2182
检查一下
myconf就是我们上传的
内容里面有我们上传的solr文件
整个搭建就完成了
开启四个Tomcat
/home/quan/app/solr-cloud/tomcat01/bin/startup.sh
/home/quan/app/solr-cloud/tomcat02/bin/startup.sh
/home/quan/app/solr-cloud/tomcat03/bin/startup.sh
/home/quan/app/solr-cloud/tomcat04/bin/startup.sh
SolrCloud创建Collection的命令
http://192.168.25.130:8180/solr/admin/collections?action=CREATE&name=collection2&numShards=2&relicationFactor=2
SolrCloud删除Collection的命令
http://192.168.25.130:8180/solr/admin/collections?action=DELETE&name=collection1
分片完成