Solr服务器的搭建及使用

Solr服务器的搭建过程

为什么要搭建Solr服务器?
对于一般的单体项目来说,我们在查询某样产品的时候,为了加快检索的速度,一般都要建立索引(B+树),在后台主要是通过模糊查询查找数据,但是如果sql语句是select * from user where name like %peace% 它并不会走索引,而是要走全表扫描。对于当今的电商项目来说数据量大,如果走全表扫描,效率会很低下,虽然Mysql5.6之后提供了全文索引,但是是在数据库层面进行操作的,对数据库的压力比较大,主要是走磁盘的方式(IO),然后我们使用了solr或者es。
在这里插入图片描述
solr服务器的整体架构如下:
在这里插入图片描述

1.下载Solr的安装包:http://archive.apache.org/dist/lucene/solr/
在这里插入图片描述
2.新建文件solr,将压缩文件上传到solr文件夹中
在这里插入图片描述
在这里插入图片描述
3.解压,删除压缩包
在这里插入图片描述
在这里插入图片描述
对于solr目录的关键字说明:
bin: solr的运行脚本
dist: 包含一个可以连通tomcat和solrhome的可运行的war包
docs:solr的api文档
example:solr工程的例子目录。 example/solr该目录是一个标准的SolrCore目录的内容为
在这里插入图片描述
collection就是一个solr core

4.把solr复制一份到/usr/local/solrhome
在这里插入图片描述
5.进入到solr的dist目录 ,将solr的war包复制到tomcat
在这里插入图片描述

[root@192 dist]#  cp solr-4.10.4.war /usr/local/myTomcat/tomcat/webapps/

6.到/usr/local/myTomcat/tomcat/webapps/目录下,解压solr的压缩包
只需要启动tomcat即可!
在这里插入图片描述
查看启动日志的时候,报错:
在这里插入图片描述
原因:tomcat启动了两次,导致冲突
解决办法:关闭tomcat,重新启动即可

[root@192 bin]# ./shutdown.sh 
[root@192 bin]# ./startup.sh 

在这里插入图片描述
完美解决!!!!!!

7.拷日志的架包或者日志的配置文件
在这里插入图片描述
创建一个放配置文件的地方

[root@192 WEB-INF]# mkdir classes

在这里插入图片描述
去哪里找架包或者日志的地方?

[root@192 example]# cd lib/ext/

在这里插入图片描述
将架包复制到/usr/local/myTomcat/tomcat/webapps/solr/WEB-INF/lib/
在这里插入图片描述
进入同级的resources文件

[root@192 example]# cd resources/

在这里插入图片描述复制日志文件
在这里插入图片描述
查看我们创建的solrhome文件:
在这里插入图片描述
在上述的操作中已经把tomcat和solr配置已经结束了!

8 tomcat和solr建立联系

进入到cd /usr/local/myTomcat/tomcat/webapps/solr/WEB-INF/
目录下的web.xml, 使用vi web.xml 修改文件的内容,其中env-entry-value中的值是你自己的solrhome文件路径
在这里插入图片描述
9.验证是否连接成功
启动tomcat

[root@192 bin]# ./startup.sh 

打印的日志(看是否启动成功):

在这里插入图片描述
通过http://192.168.1.105:8080/solr/进行访问
在这里插入图片描述
ok!!!l连接成功!!!!

10 安装中文分词器(IKAnalyzer)及扩展词典
上传IKAnalyzer,把IKAnalyzer依赖的jar添加到lib中,在WEB-INF下面新建一个classes文件,将分析器的配置文件放入classes文件夹中。
在这里插入图片描述

在solrcore中指定中文分析器,需要在schema.xml中配置,配置的是solrhome里面的东西
需要: 自定义一个FieldType, 在schema.xml中去定义,在FieldType中指定分析器。
在这里插入图片描述
在这里插入图片描述

重新启动tomcat时报错:java.lang.AbstractMethodError
这是由于solr和IKAnalyzer版本不匹配,更换一下其它版本,使用的solr-4.10.4 ,而IKAnalyzer使用的版本过高,替换成IKAnalyzer2012FF_u1,就ok啦!!!

添加停用词stopword.dic和扩展词典ext.dic
在这里插入图片描述
访问http://192.168.1.103:8080/solr/
在这里插入图片描述
分词器添加成功!!!

11.solr自定义Field
这里主要是连接数据库与solr-core
创建索引库
还是在schema.xml文件中自定义一个FieldType
在这里插入图片描述
上图解释:

  <field name="product_name" type="text_ik" indexed="true" stored="true"/> 

  在导入product_name的时候使用我们定义的中文分词text_ik进行分词,indexed按照名称进行搜索,stored存储,type="int"时不进行分词, 
 <field name="product_keywords" type="text_ik" indexed="true" stored="true" 
   multiValued="true"/>
   <!--将商品名称添加到目标域-->
  <copyField source="product_name" dest="product_keywords"/>
 <!--将商品卖点添加到目标域-->
  <copyField source="sale_point" dest="product_keywords"/>
      
  目标域:主要是解决多个字段联合查询的问题,multiValued多重值,product_keywords是一个复合字段包括了product_name,sale_point等字段,既会按照product_name去搜索,也会按照sale_point去搜索。

重启tomcat!!! ok!!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值