solr搭建(1)

1 官方文档

Solr官方文档_w3cschool

Welcome to Apache Solr - Apache Solr

1 有两个或者三个独立的包:

    solr-8.11.0.zip 适用于 Microsoft Windows 系统 (可能没有,根据版本而定)

  1.  solr-8.11.2-src.tgz  Solr 源代码。
  2. solr-8.11.2.tgz 适用于 Linux/Unix/OSX 系统

2 solr安装单机版

2.1 前置

环境:jdk1.8+tomcat8 一定去官网查看安装solr版本匹配的jdk版本,否则可能报错

8.9版本搭建完,java不能访问,7.1是可以的。注意,注意,注意

目录结构:

     solr7.1.0学习笔记(2)---solr的目录结构讲解_Hrzhi的博客-CSDN博客

熟悉名词:

 solr_home:SolrHome是Solr存放数据得根目录,将来solr产生的数据就存储在solrHome中

                       SolrHome可以含多个SolrCore;

SolrCore:类似于一个链接下的多个数据库,一个库就是一个SolrCore

简单理解:solr_home就是存放数据得根目录,具体存放数据得目录称为(SolrCore)

Solr--02.Solr中Core详解_sswqzx的博客-CSDN博客

2.2 windows下安装

 win下和linux下步骤一样的,只不过用命令执行操作

2.2jetty版访问

1 解压solr-8.9.0.zip

 solr内置了一个服务器 jetty服务器,直接启动即可访问。

bin目录下 执行命令

使用内嵌jetty启动solr
solr start
停止
solr stop /solr stop -all
查看信息 例如solr_home位置等
solr status
访问地址:
http://localhost:8983/solr/#/

2.2tomcat版访问

1: 解压solr-8.9.0.zip  ,在解压 apache-tomcat-8.5.41

2:  进入到 solr-8.9.0\server\solr-webapp 目录下

 3 .1: 方式1 直接将 webapp目录整个复制到 tomcat的webapps目录下,并将webapp改名为solr

3.2: 方式2 进入webapp目录下,将里面所有文件打成solr.war包,将solr.war包复制到tomcat的webapps目录下, 启动tomcat,让tomcat解压solr.war即可

jar cvf solr.war ./*

 tomcat目录下

 4:修改tomcat下webapps/solr/WEB-INF/web.xml的配置solr_home的位置

   让着solr.war项目知道索引库的根目录位置在哪,

  如果没有该目录自己手动创建solr_home这个文件夹

 注意该方式win下路径斜杠要对,否则找不到solrHome,如果还是找不到solrHome,请看步骤13

<env-entry>
     <env-entry-name>solr/home</env-entry-name>
     <env-entry-vale>E:\myData\软件包\solr/solr_home"你的solrhome位置路径不能有中文"</env-entry-vale>
     <env-entry-type>java.lang.String</env-entry-type>
</env-entry>

5: 配置根目录的配置信息

5.1:去solr-8.9.0\server\solr 下copy两个配置文件(solr.xml,zoo.cfg) 复制到 步骤4配置的solr_home根目录下也可以复制全部文件到solr_home文件夹内,都行

 5.2:拷贝solr-8.9.0 下 contrib和dist文件夹复制到 solr_home下

 6:自己简单玩玩可以先关闭安全认证,不然报403

   注释掉下面的配置,tomcat下webapps/solr/WEB-INF/web.xml的配置

    <security-constraint>
    <web-resource-collection>
      <web-resource-name>Disable TRACE</web-resource-name>
      <url-pattern>/</url-pattern>
      <http-method>TRACE</http-method>
    </web-resource-collection>
    <auth-constraint/>
  </security-constraint>
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>Enable everything but TRACE</web-resource-name>
      <url-pattern>/</url-pattern>
      <http-method-omission>TRACE</http-method-omission>
    </web-resource-collection>
  </security-constraint>

7:拷贝日志工具相关jar包:将solr-8.9.0\server\lib\ext下的所有jar包拷贝到tomcat下Solr的/WEB-INF/lib/目录下

8:拷贝metrics相关jar包:将solr-8.9.0\server\libmetrics相关jar包 或者除了jetty外都(暂定) 拷贝到tomcat下Solr的/WEB-INF/lib/目录下,要是有这个gmetric4j-1.0.7.jar也copy过去吧。

9:拷贝dataimport相关jar包:将solr-8.9.0\distsolr-dataimport相关jar包拷贝到tomcat下Solr的/WEB-INF/lib/目录下 (作用:数据库导入到solr所用)

10:拷贝log4j2配置文件:将solr-8.9.0\server\resources目录中log4j配置文件拷贝到tomcat下Solr的/WEB-INF/classes(自行创建目录),并修改日志文件的路径

方式一:就必须在启动tomcat启动脚本上加参数。(不同环境不同命令,下面有)

方式二  :log4j2.xml中${sys:solr.log.dir} 如果不配置好路径,

注意:版本不同,文件名或者个数不一样的7.1就是一个文件

 

11:配置solr_home中solrCore, 创建 collection1文件夹(collection1索引库) 将 solr-8.9.0\example\example-DIH\solr\solr 中 所有复制到 自己创建的collection1中,并且在collection1中创建一个data文件夹

 

11.2:复制完成后,collection1下的conf/solrconfig.xml 文件修改,

12:tomcat下solr的/WEB-INF/classes/log4j2.xml的配置文件

里面log路径是动态的 ${sys:solr.log.dir}  ,启动tomcat会报错

方式一:直接写死日志保存路径

方拾二:修改tomcat启动脚本,指定日志路径

tomcat的bin\catalina.bat ,linux下bin\catalina.sh 中配置日志文件的环境参数

win下:

set "JAVA_OPTS=%JAVA_OPTS% -Dsolr.log.dir=E:\myData\software\solr\apache-tomcat-8.5.41-solr\logs"

linux下:

JAVA_OPTS="-Dsolr.log.dir=/usr/local/solr/tomcat-8.5.47/logs/solr"

13:启动tomcat 会报solr.xml does not exist in solr cannot start Solr

 tomcat的bin\catalina.bat, linux下bin\catalina.sh中配置日志文件的环境参数

win下:

set "JAVA_OPTS=%JAVA_OPTS% -Dsolr.solr.home=E:\myData\software\solr\solr_home"

 linux下:

 JAVA_OPTS="-Dsolr.solr.home=/usr/local/solr/solr_home"

重启tomcat,看到welcome,说明solr安装完毕。

12访问后台测试

http://localhost:8080/solr/index.html

2.3 linux下安装

2.3.1 先安装jdk1.8

和在windows步骤一样,只不过需要命令去复制安装等

如果 没有安装vim 编辑
yum -y install vim*

解压命令
tar -zxvf solr-8.11.2.tgz -C /usr/local/solr/

拷贝命令 文件夹拷贝就加 -r
cd solr-8.11.2/server/solr-webapp/
cp -r webapp /usr/local/solr/tomcat-8.5.47/webapps/
将复制到tomcat下的项目改名
mv webapp/ solr

复制 solr-8.11.2/server/lib/ext下所有jar
cp * /usr/local/solr/tomcat-8.5.47/webapps/solr/WEB-INF/lib/
复制 solr-8.11.2/server/lib下metrics-前缀的jar
cp metrics-* /usr/local/solr/tomcat-8.5.47/webapps/solr/WEB-INF/lib/

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


tomcat下的bin\catalina.sh 中配置日志和solrHome的环境参数

JAVA_OPTS="-Dsolr.log.dir=/usr/local/solr/tomcat-8.5.47/logs/solr"
 JAVA_OPTS="-Dsolr.solr.home=/usr/local/solr/solr_home"

3ik分词器安装

http://code.google.com/p/ik-analyzer/downloads/list

cc/ik-analyzer-solr

3.1.1 测试自带分词效果,不是很好

3.1.2安装步骤

  1. 3.2.1:解压下载的IKAnalyzer安装包
  2. 3.2.2:将解压完的 IKAnalyzer*.jar(名字不同),复制到tomcat下webapps\solr\WEB-INF\lib下
  3. 3.2.3扩展词和停用词的配置 IKAnalyzer.cfg.xml 即可,本文中是已经成型的,官网都有讲解,很简单

讲解一下:

在solr_home中collention1\conf 修改配置 managed-schema(低版本就是schema.xml)

哪个索引库用ik,哪个库就改 ,这里是测试collention1这个库

<!-- ik分词器 -->
<fieldType name="text_ik" class="solr.TextField">
  <analyzer type="index">
      <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" conf="ik.conf"/>
      <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
  <analyzer type="query">
      <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" conf="ik.conf"/>
      <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
</fieldType>

3.1.3动态添加词语

3.2.1 IKAnalyzer2012_u6 版本测试

IKAnalyzer2012_u6:8.9不适用

3.3.1IKAnalyzer2012FF_u1版本测试

IKAnalyzer2012FF_u1:测试solr版本8.9,不适用

步骤1:解压IKAnalyzer2012FF_u1

步骤2:将IKAnalyzer2012FF_u1.jar 复制到tomcat下webapps\solr\WEB-INF\lib下

步骤3:将下面介绍的文件复制到 tomcat下webapps\solr\WEB-INF\classes下

  简单介绍一下  IKAnalyzer.cfg.xml:配置扩展词和停用词 , 自己要配置一下

stopword.dic(停用词) ,自己可以随意创建文件的

步骤4 :配置solr_home 中的某个索引库(本文是collection1) ,solr_home/collection1/conf/managed-schema(低版本就是schema.xml)

     <!-- ik分词器-->
  <fieldType name="text_ik" class="solr.TextField">
    <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
  </fieldType> 

一定要自己试试,可能查询的就会报错,自己也可以添加扩展词,停用词在自己测试一下

3.4.1ik-analyzer-solr7-7.x版本测试

可以支持solr8.9版本

报错:SolrCore Initialization Failures

4 集群版搭建

 zk的搭建可以看我的zk

 伪集群:一台机器上部署4个solr,所以tomcat端口冲突,要修改端口

4.1 按照上面部署方式 部署一台单机的solr(能够访问成功后)

4.2复制 4份tomcat 和4份solrHome

cp -rf tomcatsolr1 tomcatsolr2
cp -rf solr_home1 solr_home2

4.3 去每个tomcat下下webapps\solr\WEB-INF下修改web.xml 配置solrHome的对应各自的路径

4.4 tomcat下的bin\catalina.sh 中配置日志和solrHome的环境参数路径对应各自修改

4.5 每个tomcat端口号修改,  修改配置文件 tomcat\conf\server.xml

详解默认端口: tomcat 8005(shutdown停止tomcat端口) , 8080(接收请求端口),8009(ajp连接端口)

4个tomcat配置如下:

tomcat1810581808109
tomcat2820582808209
tomcat3830583808309
tomcat4840584808409

   4.6修改每个solrHome下solr.xml的集群配置,对应指定tomcat的ip和端口

    <solrcloud>
    <str name="host">192.168.135.128</str>
    <int name="hostPort">8180</int>

4.7配置每个tomcat 下的bin\catalina.sh 中配置 zk集群信息,让每一条tomcat都和zk集群关联

   端口是zk的集群(3台)客户端端口,分别是 2181,2182,2183

JAVA_OPTS="-DzkHost=192.168.135.128:2181,192.168.135.128:2182,192.168.135.128:2183"

4.8 让zk统一管理solr集群的配置文件

solr集群中每一个节点配置都要一致,所以需要zk管理solr集群的配置文件。主要管理的就是solrconfig.xml 和  (schema.xml/managed-schema)文件

下面的命令就是将conf目录下的配置文件,上传到zk.以后集群中的配置文件以zookeeper中为准,搭建好集群后,solrcore中没有配置文件的

在 解压的 solr7.1下 目录 solr-7.1.0\server\scripts\cloud-scripts 执行下面的命令

注意:一定先启动zk集群

./zkcli.sh -zkhost 192.168.135.128:2181,192.168.135.128:2182,192.168.135.128:2183 -cmd upconfig -confdir /usr/local/solr/solr_home1/collection1/conf -confname myconf

-zkhost:指定zk地址列表

upconfig:上传配置文件

-confdir:指定配置文件所在目录

-confname:指定上传到zookeeper后的目录名

 查看是否上传成功:使用插件 ZooInspector 链接随便一台zk 查看是否数据已经上传,还可以删除上传的节点

4.9 由于solr配置文件,已经交给zk管理了。所有的solrHome中 solrCore 必须删除掉

5.0启动所有tomcat(做一个脚本可以)

./tomcatsolr1/bin/startup.sh
./tomcatsolr2/bin/startup.sh
./tomcatsolr3/bin/startup.sh
./tomcatsolr4/bin/startup.sh

访问四个solr管理后台:开放端口及刷新防火墙

http://192.168.135.128:8180/solr/index.html
http://192.168.135.128:8280/solr/index.html
http://192.168.135.128:8380/solr/index.html
http://192.168.135.128:8480/solr/index.html

5 solr集群后续

5.1 修改域

 

 5.2数据分片

创建新的collection进行分片处理。

参数:name:将被创建的集合名字

 numShards:集合创建时需要创建的逻辑碎片个数

replicationFactor:分片的副本数

图形化方式:

手动方式:

在浏览器输入一下地址,可以按照 我们的要求 创建新的collection

http://192.168.135.128:8180/solr/admin/collections?action=CREATE&name=collection1&numShards=2&repllcationFactor=2&collection.configName=myconf

 必须添加完成后,一定在管理页面添加数据,在查询,有可能搭建完事用不了的。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值