【sorl安装】
# 需要把solr服务器安装到linux环境:
# 第一步:安装linux、jdk、tomcat。

[root@bogon ~]# ll
total 8044
-rw-r--r--. 1 root root 8234674 Oct 27  2013 apache-tomcat-7.0.47.tar.gz
[root@bogon ~]# tar -zxf apache-tomcat-7.0.47.tar.gz 
[root@bogon ~]# mkdir /usr/local/solr
[root@bogon ~]# cp apache-tomcat-7.0.47 /usr/local/solr/tomcat -r
[root@bogon ~]# cd /usr/local/solr/

# 第二步:把solr的压缩包上传到服务器。并解压。

# 第三步:把/root/solr-4.10.3/dist/solr-4.10.3.war包部署到tomcat下。并改名为solr.war

[root@bogon dist]# cp solr-4.10.3.war /usr/local/solr/tomcat/webapps/solr.war


真机:

sudo cp solr.war /usr/local/solr
sudo cp solr.war tomcat/webapps

# 第四步:解压war包。启动tomcat自动解压。关闭tomcat。删除solr.war.

cd tomcat/bin
sudo ./startup.sh


查看tomcat启动日志

tail -f logs/catalina.out


关闭tomcat

sudo ./shutdown.sh 
sudo rm solr.war

# 第五步:把/root/solr-4.10.3/example/lib/ext 目录下所有的jar包复制到solr工程中。

sudo cp * /usr/local/solr/tomcat/webapps/solr/WEB-INF/lib/

# 第六步:创建solrhome。Solrhome是存放solr服务器所有配置文件的目录。

cd /root/solr-4.10.3/example
sudo cp -r solr /usr/local/solr/solrhome

# 第七步:告诉solr服务器solrhome的位置。需要修改solr工程的web.xml文件。
打开下面的注释
并修改env-entry-value的值为solrhome的路径,可以使用pwd查看

<env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>/usr/local/solr/solrhome</env-entry-value>
       <env-entry-type>java.lang.String</env-entry-type>
</env-entry>

# 第八步:启动tomcat
http://192.168.68.128:8080/solr/

#====================================================================================
【添加中文分析器】
1.将中文分析器的文件夹复制到Linux服务器
IK Analyzer 2012FF_hf1

2.需要把分析器的jar包添加到solr工程中。

sudo cp IKAnalyzer2012FF_u1.jar /usr/local/solr/tomcat/webapps/solr/WEB-INF/lib

3.需要把IKAnalyzer需要的扩展词典及停用词词典、配置文件复制到solr工程的classpath。
/usr/local/solr/tomcat/webapps/solr/WEB-INF/classes
注:没有classes文件夹,需要手动创建。

mkdir /usr/local/solr/tomcat/webapps/solr/WEB-INF/classes

复制词典和配置文件命令:

sudo cp IKAnalyzer.cfg.xml ext_stopword.dic mydict.dic /usr/local/solr/tomcat/webapps/solr/WEB-INF/classes


注意:扩展词典及停用词词典的字符集必须是utf-8。不能使用windows记事本编辑。

第四步:配置fieldType。需要在solrhome/collection1/conf/schema.xml中配置。
技巧:使用vi、vim跳转到文档开头gg。跳转到文档末尾:G
在schema.xml结尾添加

<fieldType name="text_ik" class="solr.TextField">
  <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>

#====================================================================================
#业务字段配置
#业务字段判断标准:
1、在搜索时是否需要在此字段上进行搜索。例如:商品名称、商品的卖点、商品的描述
2、后续的业务是否需要用到此字段。例如:商品id。
例如XX项目中添加的字段,添加在中文分词器配置后:

<field name="item_title" type="text_ik" indexed="true" stored="true"/>
<field name="item_sell_point" type="text_ik" indexed="true" stored="true"/>
<field name="item_price"  type="long" indexed="true" stored="true"/>
<field name="item_image" type="string" indexed="false" stored="true" />
<field name="item_category_name" type="string" indexed="true" stored="true" />
<field name="item_desc" type="text_ik" indexed="true" stored="false" />

<field name="item_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>
<copyField source="item_title" dest="item_keywords"/>
<copyField source="item_sell_point" dest="item_keywords"/>
<copyField source="item_category_name" dest="item_keywords"/>
<copyField source="item_desc" dest="item_keywords"/>

#====================================================================================
【zookeeper集群安装】 需要jdk
第一步:把zookeeper的安装包上传到服务器
第二步:解压缩。
第三步:在/usr/local/目录下创建一个solrcloud目录。把zookeeper解压后的文件夹复制到此目录下三份。分别命名为zookeeper1、2、3

mkdir /usr/local/solrcloud
mv zookeeper-3.4.6 /usr/local/solrcloud/zookeeper1
cd /usr/local/solrcloud
cp -r zookeeper1/ zookeeper2
cp -r zookeeper1/ zookeeper3


第四步:配置zookeeper。
1、在每个zookeeper文件夹下创建一个data目录。
2、在data文件夹下创建一个文件名称为myid,文件的内容就是此zookeeper的编号1、2、3
#创建三次

mkdir data
cd data
echo 1 >> myid


3、把zookeeper1下conf目录下的zoo_sample.cfg文件复制一份改名为zoo.cfg
4、修改zoo.cfg的配置
#创建的data目录的全路径
dataDir=/usr/local/solrcloud/zookeeper1/data
#对外提供服务端口号 保证不冲突
clientPort=2181
#添加配置 第一个端口:选举端口 第二个:投票端口
server.1=192.168.68.128:2881:3881
server.2=192.168.68.128:2882:3882
server.3=192.168.68.128:2883:3883
#接着读其他的solr进行zoo.cfg配置和修改

5.启动zookeeper
启动zookeeper:

./zkServer.sh start


关闭:

./zkServer.sh stop


查看状态:

./zkServer.sh status


#状态 两个follower 一个leader

#====================================================================================
【solr实例搭建】
第一步:创建4个tomcat实例,修改其端口。8086-8089

cp apache-tomcat-7.0.47 /usr/local/solrcloud/tomcat1 -r
cp apache-tomcat-7.0.47 /usr/local/solrcloud/tomcat2 -r
cp apache-tomcat-7.0.47 /usr/local/solrcloud/tomcat3 -r
cp apache-tomcat-7.0.47 /usr/local/solrcloud/tomcat4 -r


#修改端口 server.xml
Server port="8005" 改为8011~8014
Connector port="8080" 改为8086~8089
Connector port="8009" 改为8015~8018
第二步:解压solr-4.10.3.tar.gz压缩包。从压缩包中复制solr.war到tomcat。

cp solr.war tomcat1/webapps/
cp solr.war tomcat2/webapps/
cp solr.war tomcat3/webapps/
cp solr.war tomcat4/webapps/


第三步:启动tomcat解压war包。把solr-4.10.3目录下example目录下的关于日志相关的jar包添加到solr工程中。

tomcat1/bin/startup.sh
...
tomcat1/bin/shutdown.sh
...
rm tomcat1/webapps/solr.war 
...

 

#★参照之前单机版solr的project配置进行添加,这里直接将之前配置好的项目的复制过来。
rm -rf tomcat*/webapps/solr*
cp solr/ ../../../solrcloud/tomcat4/webapps/ -r
#拷贝solrhome
cp solrhome/ ../solrcloud/solrhome4 -r


第四步:创建solrhome。修改web.xml指定solrhome的位置。

<env-entry>
   <env-entry-name>solr/home</env-entry-name>
              <env-entry-value>/usr/local/solrcloud/solrhome1</env-entry-value>
   <env-entry-type>java.lang.String</env-entry-type>
</env-entry>

#====================================================================================
【solr集群搭建】
●zookeeper集中管理配置文件
1.把solrhome中的配置文件上传到zookeeper集群。使用zookeeper的客户端上传。
客户端命令位置:/solr-4.10.3/example/scripts/cloud-scripts/zkcli.sh
#命令

./zkcli.sh -zkhost 192.168.68.128:2181 192.168.68.128:2182 192.168.68.128:2183 -cmd upconfig -confdir /usr/local/solrcloud/solrhome1/collection1/conf/ -confname myconf


###查看上传是否成功
#在/zookeeper/bin下
使用  

  ./zkCli.sh   

 命令
ls /configs/myconf   
#如果有上传的文件,则上传成功。

2.修改solrhome下的solr.xml文件,指定当前实例运行的ip地址及端口号。
#修改每个solrhome下(4个,端口8086-8089)。

 <solrcloud>
    <str name="host">${host:192.168.68.128}</str>
    <int name="hostPort">${jetty.port:8086}</int>
    <str name="hostContext">${hostContext:solr}</str>
    <int name="zkClientTimeout">${zkClientTimeout:30000}</int>
    <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
  </solrcloud>

3.修改每一台solr的tomcat 的 bin目录下catalina.sh文件中加入DzkHost指定zookeeper服务器地址: 
JAVA_OPTS="-DzkHost=192.168.68.128:2181,192.168.68.128:2182,192.168.68.128:2183"
(可以使用vim的查找功能查找到JAVA_OPTS的定义的位置,然后添加)

4.重启tomcat
#◆如果成功,访问http://192.168.68.128:8089/solr 会多一个could选项。

5.创建一个两片的collection,每片是一主一备。
使用以下命令创建:
http://192.168.68.128:8086/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2

6.可以多个collection共存,也可以删掉多余的collection1
删除collection1.
http://192.168.68.128:8086/solr/admin/collections?action=DELETE&name=collection1
#====================================================================================
【solr集群启动顺序】 如果顺序不对 加载schema会出错
1.将所有solr.war包部署的tomcat全部启动

2.先分别把所有的zookeeper进行启动

./zookeeper1/bin/zkServer.sh start
./zookeeper2/bin/zkServer.sh start
./zookeeper3/bin/zkServer.sh start


#查看状态 看是否启动成功(只有三个都启动成功,才会显示启动成功的状态)

./zookeeper1/bin/zkServer.sh status


 

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐