欢迎您, 来到 宁时修博客.^_^

Solr系列--1、Solr部署

2016/11/23 林木立 Solr 1450
企业级搜索应用服务Solr

一、Solr简介

    Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。

        Solr是基于Lucene的高性能全文搜索服务器,同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。


二、Solr部署方式

      从Solr 5.0后,Solr自带servlet容器Jetty,不再依赖Tomcat来部署,但是依旧可以使用Tomcat来部署,本次测试部署两种都试试。

2.1 基于Jetty的Solr部署

2.1.1 JDK部署

     由于Solr基于JAVA开发,所以JDK必须安装。JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境,JAVA工具和JAVA基础的类库。

     Oracle JDK官方下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

cd /tools/src
tar xf jdk-8uXX-linux-x64.tar.gz -C /usr/local/ 
sed -i.bak '$a export JAVA_HOME=/usr/local/jdk1.8.0_XX\nexport PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH\nexport CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar' /etc/profile 
source /etc/profile
java -version


2.1.2 Solr 6部署

  Apache Solr官方下载地址:http://www.apache.org/dyn/closer.lua/lucene/solr

  下载所需版本到测试机上,然后直接部署:

cd /tools/src
tar xf solr-6.X.X.tgz -C /usr/local/

  到此,solr已经部署上,可以用了,就这么简单......

2.1.3 启动solr

  部署solr后,就可以启动了:

/usr/local/solr-6.X.X/bin/solr start
Waiting up to 30 seconds to see Solr running on port 8983 [-] 
Started Solr server on port 8983 (pid=1556). Happy searching!

  已经启动solr了,solr端口默认为8983;通过http://host_ip:8983/solr 即可访问solr可视化界面。


2.1.4 参数说明

  启动脚本可用参数:

/usr/local/solr/bin/solr --help
可选options:
start, stop, restart, status, healthcheck, create, create_core, create_collection, delete, version, zk


 ./bin/solr start参数说明:

/usr/local/solr/bin/solr start --help
Usage: solr start [-f] [-c] [-h hostname] [-p port] [-d directory] [-z zkHost] [-m memory] 
[-e example] [-s solr.solr.home] [-a "additional-options"] [-V]
-f在前台启动Solr并打印输出,默认情况下会在后台启动Solr并发送至solr-PORT-console.log中。./bin/solr start -f
-c  Or  -cloud开启SolrCloud模式. 如果没有用-z指令,则会有一个嵌入式的Zookeeper服务被安置在Solr端口+1000的位置。例如默认情况下Solr的端口是8983zonokeeper的端口是9983./bin/solr start -c
-h <host>启动时,为Solr服务指定hostname, 默认为'localhost'./bin/solr start -h solr.test.com
-p <port>设定启动的这个Solrhttp地址的端口。默认是8983./bin/solr start -p 8088
-d <dir>定义server目录,默认是server$SOLR_HOME/server),一般不会重置这个目录。./bin/solr start -d NewServerDir
-z <zkHost>Zookeeper连接字符串启动solr服务,仅用于在运行在SolrCloud模式下使用;若不指定本选项,则使用-c时启动内嵌的ZooKeeper实例。

./bin/solr start -c -z

node1:2181,node2:2181,node3:2181
-m <memory>设置JVM的内存。最小值(-Xms)和最大值(-Xmx)。示例:-m 4g的结果-Xms4g -Xmx4g。在默认的情况下,脚本设置内存大小为512M./bin/solr start -m 4g
-s <dir>设置solr.solr.home系统属性,默认server/solr./bin/solr start -s NewHome
-e < example>

以样例配置启动Solr。

可选项为:

  cloud      solrcloud实例。

  techproducts 综合实例,说明许多solr的核心功能。

  dih       数据处理程序。

  schemaless  无模式的实例。

./bin/solr start -e cloud
-a “<string>”启动solr时添加额外的JVM参数./bin/solr start -a “-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044”
-V启动solr时输出详细信息./bin/solr start -V
-noprompt启动solr时,接受默认的设置,不需要交互确认。./bin/solr start -e cloud -noprompt

   还有其他可用选项参数,具体请看官方文档


2.2 基于Tomcat的Solr部署

2.2.1 JDK部署

   参考上面 2.1.1。


2.2.2 Tomcat部署

    Tomcat 服务是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选,它还是一个Servlet和JSP容器。

        Apache Tomcat官方下载地址:http://tomcat.apache.org/download-80.cgi

cd /tools/src
tar xf apache-tomcat-8.0.XX.tar.gz -C /usr/local/
ln -s /usr/local/apache-tomcat-8.0.XX/ /usr/local/tomcat
echo 'export TOMCAT_HOME=/usr/local/tomcat'>>/etc/profile
source /etc/profile


2.2.3 部署Solr服务

cd /tools/src
tar xf solr-6.X.X.tgz
cp -r solr-6.X.X/server/solr-webapp/webapp /usr/local/tomcat/webapps/solr  #拷贝Solr的应用程序
cp solr-6.X.X/server/lib/ext/*.jar /usr/local/tomcat/webapps/solr/WEB-INF/lib/   #拷贝所需的jar包
cp solr-6.X.X/dist/solr-dataimporthandler-* /usr/local/tomcat/webapps/solr/WEB-INF/lib/  #拷贝所需的jar包
mkdir /usr/local/tomcat/webapps/solr/WEB-INF/classes
cp solr-6.X.X/server/resources/log4j.properties /usr/local/tomcat/webapps/solr/WEB-INF/classes/
mkdir /usr/local/tomcat/solr-home   #创建Solr Core存放目录
cp solr-6.X.X/server/solr/solr.xml /usr/local/tomcat/solr-home/


  另外需要更改配置文件和下载所需jar包:

  1、下载java链接MySQL的jar包:

  MySQL 官方下载:http://dev.mysql.com/downloads/connector/j/

cp mysql-connector-java-5.1.39-bin.jar /usr/local/tomcat/webapps/solr/WEB-INF/lib/mysql-connector-java-5.1.39.jar

  

  2、修改配置文件中solr-home的路径:

vim /usr/local/tomcat/webapps/solr/WEB-INF/web.xml
##以下代码默认是被注释的,需要删掉注释,并修改<env-entry-value>..</env-entry-value>中solr-home路径为刚才创建的路径
    <env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>/usr/local/tomcat/solr-home</env-entry-value>
       <env-entry-type>java.lang.String</env-entry-type>
    </env-entry>


  3、修改Solr默认端口为tomcat端口:

vim /usr/local/tomcat/solr-home/solr.xml
##将端口改成tomcat端口8080
<int name="hostPort">${jetty.port:8080}</int>

 

 然后启动tomcat就启动了Solr服务:

/usr/local/bin/startup.sh

通过:http://host_ip:8080/solr/index.html 访问solr可视化管理界面。


2.2.4 创建Core

solr-home下创建目录core1,这个solrcore的名字,然后复制配置文件。

mkdir /usr/local/tomcat/solr-home/core1
cp -r solr-6.X.X/server/solr/configsets/sample_techproducts_configs/conf /usr/local/solr-home/core1
cp solr-6.X.X/example/example-DIH/solr/db/conf/db-data-config.xml /usr/local/solr-home/core1/conf/data-config.xml


  然后在 http://host_ip:8080/solr/index.html solr可视化管理界面添加Core,当然可以使用API添加,后面的文章再介绍。

qq.png

点击“Add Core”这下就创建成功了一个实例core1。


附录:对于JDK环境变量,建议创建一个专门用来管理、启动、关闭solr服务的守护进程用户,在其家目录下的 .bash_profile中添加环境变量。这么做主要是为了安全考虑,不能让任何用户都可执行、解析程序等。



PS:本人水平有限,如有错误,请指正!!!

点赞
说说你的看法

所有评论: (0)

# 加入组织

1、用手机QQ扫左侧二维码

2、搜Q群:1058582137

3、点击 宁时修博客交流群