Solr 的使用和搭建

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
云原生网关 MSE Higress,422元/月
简介: solr全文检索的强大

Solr服务搭建

1、Solr的环境

  • 安装环境Linux。
  • Solr是java开发。
  • 需要安装jdk。
  • 需要安装Tomcat。

2、搭建步骤

第一步:把solr 的压缩包上传到Linux系统

第二步:解压solr。

第三步:安装Tomcat,解压缩即可。

第四步:把solr部署到Tomcat下。(/usr/soft/solr-4.10.3/example/webapps下)

第五步:解压缩war包。启动Tomcat解压。

第六步:把/root/solr-4.10.3/example/lib/ext目录下的所有的jar包,添加到solr工程中。

               [root@localhost ext]# pwd /root/solr-4.10.3/example/lib/ext [root@localhost ext]# cp * /usr/local/solr/tomcat/webapps/solr/WEB-INF/lib/              

第七步:创建一个solrhome。/example/solr目录就是一个solrhome。复制此目录到/usr/local/solr/solrhome

               [root@localhost example]# pwd /root/solr-4.10.3/example [root@localhost example]# cp -r solr /usr/local/solr/solrhome [root@localhost example]#              

第八步:关联solr及solrhome。需要修改solr工程的web.xml文件。

image.jpeg

第九步:启动Tomcat

http://192.168.25.132:8080/solr/

windows下的配置完全一样。

3、配置业务域

schema.xml中定义

1、商品Id

2、商品标题

3、商品卖点

4、商品价格

5、商品图片

6、分类名称

7、商品描述

 

创建对应的业务域。需要制定中文分析器。

 

创建步骤:

第一步:把中文分析器添加到工程中。

1、IKAnalyzer2012FF_u1.jar添加到solr工程的lib目录下

2、把扩展词典、配置文件放到solr工程的WEB-INF/classes目录下。(ext_stopword.dic、mydict.dic、IKAnalyzer.cfg.xml)

第二步:配置(业务域)一个FieldType,制定使用IKAnalyzer

修改schema.xml文件cd solr/solrhome/collection1/conf/ 下)

修改Solr的schema.xml文件,添加FieldType:

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

第三步:配置业务域,type制定使用自定义的FieldType

设置业务系统Field

               <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"/>              

直接将下面的配置赋值到schema.xml文件最下面即可

第四步:重启tomcat

Solr界面介绍:https://blog.csdn.net/zcl_love_wx/article/details/52092098




注意:需要先安装好单机版,不然中间有些配置还需要再添加,比如IK分词器等

安装步骤

3.1、Zookeeper集群搭建

               mkdir solr-cloud 在/usr/soft下创建文件夹solr-cloud   上传zookeeper-3.4.6.tar.gz到/usr/soft下并解压 cd /usr/soft 进入soft文件夹 tar -zxvf zookeeper-3.4.6.tar.gz  解压 mv zookeeper-3.4.6 ./solr-cloud/zookeeper01 复制一份到zookeeper01下   cd solr-cloud/  进入solr-cloud文件夹 cp -r zookeeper01 zookeeper02 再复制一份 cp -r zookeeper01 zookeeper03 再复制一份   cd zookeeper01 进入zookeeper01文件夹 mkdir data 创建一个data文件夹 cd conf/ 进入conf文件夹下 mv zoo_sample.cfg zoo.cfg 修改配置的文件名为zoo.cfg vim zoo.cfg 修改配置信息:dataDir=/usr/soft/solr-cloud/zookeeper01/data 保存并退出   cd .. 回到zookeeper01文件夹下 cd data 进入到data文件夹下 touch myid 新建一个文件myid vim myid 进入文件,在文件中添加一个 1 然后保存退出   cd .. cd conf 再次进入到conf文件夹下,准备重新修改zoo.cfg文件 找到在#autopurge.purgeInterval=1下添加如下信息 server.1=192.168.25.133:2881:3881 server.2=192.168.25.133:2882:3882 server.3=192.168.25.133:2883:3883 保存并退出   cd ../../ 退出来到solr-cloud目录 mkdir ./zookeeper02/data mkdir ./zookeeper03/data echo 2 >> ./zookeeper02/data/myid 将2写入到myid文件 echo 3 >> ./zookeeper03/data/myid 将3写入到myid文件 cat ./zookeeper02/data/myid 查看内容 cat ./zookeeper03/data/myid 查看内容 mv ./zookeeper02/conf/zoo_sample.cfg ./zookeeper02/conf/zoo.cfg 修改配置文件名称 mv ./zookeeper03/conf/zoo_sample.cfg ./zookeeper03/conf/zoo.cfg 修改配置文件名称   vim zookeeper02/conf/zoo.cfg 修改02中的配置文件信息 dataDir=/usr/soft/solr-cloud/zookeeper02/data 数据目录 clientPort=2182 修改端口号 #autopurge.purgeInterval=1 下一行进行添加下面代码 server.1=192.168.25.134:2881:3881 server.2=192.168.25.134:2882:3882 server.3=192.168.25.134:2883:3883  保存并退出   vim zookeeper03/conf/zoo.cfg 修改03中的配置文件信息 dataDir=/usr/soft/solr-cloud/zookeeper03/data 数据目录 clientPort=2183 修改端口号 #autopurge.purgeInterval=1 下一行进行添加下面代码 server.1=192.168.25.134:2881:3881 server.2=192.168.25.134:2882:3882 server.3=192.168.25.134:2883:3883  保存并退出   vim zookeeper-all-start.sh 编写启动文件 cd zookeeper01/bin ./zkServer.sh start cd ../../ cd zookeeper02/bin ./zkServer.sh start cd ../../ cd zookeeper03/bin ./zkServer.sh start cd ../../   chmod +x zookeeper-all-start.sh   添加执行权限 ./zookeeper-all-start.sh  启动zookeeper ./zookeeper01/bin/zkServer.sh status  查看启动状态 ./zookeeper02/bin/zkServer.sh status  查看启动状态 ./zookeeper03/bin/zkServer.sh status  查看启动状态   ------------------------------------------------------zk集群完成  

2、Solr集群的搭建

               cd ..  回到soft文件夹下,准备搭建tomcat集群 ./apache-tomcat-8.5.39/bin/shutdown.sh 不知道tomcat是否还启动在,先关闭tomcat cp -r apache-tomcat-8.5.39 ./solr-cloud/tomcat01 cp -r apache-tomcat-8.5.39 ./solr-cloud/tomcat02 cp -r apache-tomcat-8.5.39 ./solr-cloud/tomcat03 cp -r apache-tomcat-8.5.39 ./solr-cloud/tomcat04   cp -r solr/solrhome/ ./solr-cloud/solrhome01 cp -r solr/solrhome/ ./solr-cloud/solrhome02 cp -r solr/solrhome/ ./solr-cloud/solrhome03 cp -r solr/solrhome/ ./solr-cloud/solrhome04   偷懒时刻: 通过notepad++连接服务器(192.168.25.133),需要插件NppFTP,如果没有,在notepad++中插件选项栏自行下载 首先修改tomcat01下conf下的server.xml <Server port="18005" shutdown="SHUTDOWN">  将8005修改成18005 <Connector port="8180" protocol="HTTP/1.1" 将8080修改成8180 <Connector port="18009" protocol="AJP/1.3" redirectPort="8443" />  修改这三次位置的端口号保存关闭即可   修改tomcat02下conf下的server.xml <Server port="28005" shutdown="SHUTDOWN">  将8005修改成28005 <Connector port="8280" protocol="HTTP/1.1" 将8080修改成8280 <Connector port="28009" protocol="AJP/1.3" redirectPort="8443" />  修改这三次位置的端口号保存关闭即可   修改tomcat03下conf下的server.xml <Server port="38005" shutdown="SHUTDOWN">  将8005修改成38005 <Connector port="8380" protocol="HTTP/1.1" 将8080修改成8380 <Connector port="38009" protocol="AJP/1.3" redirectPort="8443" />  修改这三次位置的端口号保存关闭即可   修改tomcat04下conf下的server.xml <Server port="48005" shutdown="SHUTDOWN">  将8005修改成48005 <Connector port="8480" protocol="HTTP/1.1" 将8080修改成8480 <Connector port="48009" protocol="AJP/1.3" redirectPort="8443" />  修改这三次位置的端口号保存关闭即可   加下来修改tomcat下webapps中solr工程中的web.xml配置信息 tomcat01下 <env-entry>   <env-entry-name>solr/home</env-entry-name>   <env-entry-value>/usr/soft/solr-cloud/solrhome01</env-entry-value>   <env-entry-type>java.lang.String</env-entry-type> </env-entry>   tomcat02下 <env-entry>   <env-entry-name>solr/home</env-entry-name>   <env-entry-value>/usr/soft/solr-cloud/solrhome02</env-entry-value>   <env-entry-type>java.lang.String</env-entry-type> </env-entry>   tomcat03下 <env-entry>   <env-entry-name>solr/home</env-entry-name>   <env-entry-value>/usr/soft/solr-cloud/solrhome03</env-entry-value>   <env-entry-type>java.lang.String</env-entry-type> </env-entry>   tomcat04下 <env-entry>   <env-entry-name>solr/home</env-entry-name>   <env-entry-value>/usr/soft/solr-cloud/solrhome04</env-entry-value>   <env-entry-type>java.lang.String</env-entry-type> </env-entry>   配置solrhome下的solr.xml文件 solrhome01下的solr.xml打开, <str name="host">${host:}</str>                     <int name="hostPort">${jetty.port:8983}</int> 修改为 <str name="host">192.168.25.134</str> <int name="hostPort">8180</int>   solrhome02下的solr.xml打开, <str name="host">${host:}</str>                     <int name="hostPort">${jetty.port:8983}</int> 修改为 <str name="host">192.168.25.134</str> <int name="hostPort">8280</int>   solrhome03下的solr.xml打开, <str name="host">${host:}</str>                     <int name="hostPort">${jetty.port:8983}</int> 修改为 <str name="host">192.168.25.134</str> <int name="hostPort">8380</int>   solrhome04下的solr.xml打开, <str name="host">${host:}</str>                     <int name="hostPort">${jetty.port:8983}</int> 修改为 <str name="host">192.168.25.134</str> <int name="hostPort">8480</int>   cd /usr/soft/solr-cloud/solrhome01/collection1/conf 进入到conf文件夹下通过pwd输出路径,此路径等下会用 cd /usr/soft/solr/example/scripts/cloud-scripts/ 其中zkcli.sh文件就是solr提供通过zk来负载均衡的文件 ./zkcli.sh -zkhost 192.168.25.134:2181,192.168.25.134:2182,192.168.25.134:2183 -cmd upconfig -confdir /usr/soft/solr-cloud/solrhome01/collection1/conf -confname myconf   这里的conf路径就是刚才需要保留的conf路径   cd /usr/soft/solr-cloud/zookeeper01/bin/ 进入到此目录 ./zkCli.sh ls / ls /configs ls /configs/myconf   quit   接下来对tomat进行调优 tomcat01文件夹下bin目录下的catalina.sh文件打开 # ----------------------------------------------------------------------------- JAVA_OPTS="-DzkHost=192.168.25.134:2181,192.168.25.134:2182,192.168.25.134:2183"   只需要添加此行代码 # OS specific support.  $var _must_ be set to either true or false.   tomcat02文件夹下bin目录下的catalina.sh文件打开 # ----------------------------------------------------------------------------- JAVA_OPTS="-DzkHost=192.168.25.134:2181,192.168.25.134:2182,192.168.25.134:2183"   只需要添加此行代码 # OS specific support.  $var _must_ be set to either true or false.   tomcat03文件夹下bin目录下的catalina.sh文件打开 # ----------------------------------------------------------------------------- JAVA_OPTS="-DzkHost=192.168.25.134:2181,192.168.25.134:2182,192.168.25.134:2183"   只需要添加此行代码 # OS specific support.  $var _must_ be set to either true or false.   tomcat04文件夹下bin目录下的catalina.sh文件打开 # ----------------------------------------------------------------------------- JAVA_OPTS="-DzkHost=192.168.25.134:2181,192.168.25.134:2182,192.168.25.134:2183"   只需要添加此行代码 # OS specific support.  $var _must_ be set to either true or false.   整个solr集群完成              

               cd /usr/soft/solr-cloud/ 进入solr-cloud文件夹 vim tomcat-solr-all-start.sh cd tomcat01/bin ./startup.sh cd ../../ cd tomcat02/bin ./startup.sh cd ../../ cd tomcat03/bin ./startup.sh cd ../../ cd tomcat04/bin ./startup.sh cd ../../ 保存并退出 chmod +x tomcat-solr-all-start.sh 添加执行权限 ./tomcat-solr-all-start.sh 启动tomcat群,等待启动成功,然后访问 http://192.168.25.134:8180/solrhttp://192.168.25.134:8280/solrhttp://192.168.25.134:8380/solrhttp://192.168.25.134:8480/solr

image.jpeg

               创建新的Collection进行分片处理。 http://192.168.25.133:8180/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2

image.jpeg

               删除不用的Collection。 http://192.168.25.131:8180/solr/admin/collections?action=DELETE&name=collection1

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
7月前
|
搜索推荐 Java 应用服务中间件
【solr】安装和使用
【solr】安装和使用
41 1
|
XML JSON 搜索推荐
12Solr简介
12Solr简介
46 0
|
Java Linux API
13Solr的安装与配置
13Solr的安装与配置
41 0
|
XML 存储 JSON
Solr环境搭建
Solr环境搭建
212 0
Solr环境搭建
|
XML 存储 JSON
Solr学习总结
Solr学习总结
155 0
Solr学习总结
|
XML JSON 搜索推荐
和 Solr 对比|学习笔记
快速学习和 Solr 对比。
107 0
|
Java 应用服务中间件
Solr的搭建
Solr的搭建
183 0
Solr的搭建
|
关系型数据库 Java 应用服务中间件
solr7安装(1)
安装和配置solr
3235 0
|
开发工具
使用solr6.0搭建solrCloud
使用solr6.0搭建solrCloud 一、搭建zookeeper集群 下载zookeeper压缩包到自己的目录并解压(本例中的目录在/opt下),zookeeper的根目录我们在这里用${ZK_HOME}表示。
1538 0
|
应用服务中间件 Java