全文检索 -- Solr服务器实现站内搜索(一) -- Solr-8.7.0新版本安装配置

转载请注明出处:https://blog.csdn.net/JakeYangChina/article/details/109647848

前言

最近刚完成电商项目后台开发,对于商品的站内搜索采用的是Solr集群,Solr的版本是8.7.0,服务器采用的是apache-tomcat-9.0.17,因为是首次接触Solr,在配置过程中遇到了许多坑,特此记录下来方便以后查看,从网上能搜索到的文章基本上是低版本配置,和新版本有很大区别,如果你的版本是低于8.0.0版本,那么你可以不用往下阅读了

 

Solr是什么?

提到Solr就要先说说Lucene,Lucene是信息检索工具包,是由apache推出的一款开源的工具包,进行文档搜索,文档内信息检索或者文档相关元数据搜索等操作,一句话概括就是建立索引,搜索索引。而Solr是Apache下的一个开源项目,Solr是建立在Apache Lucene之上的流行,快速,开放源代码的企业搜索平台, 是一个独立的企业级搜索的应用服务器,配置完即可直接使用,项目里采用的是 Solr集群 + Tomcat 组合,接下来记录下如何配置Solr服务器

 

Linux环境搭建Window环境代建类似,这里为了方便记录采用Window环境搭建

 

首先下载软件,Solr官网下载地址:http://lucene.apache.org/solr/

解压完如图:

简单介绍下文件夹:

bin:启动solr内置的jetty服务器,据说jetty服务器不是很稳定,这里不采用jetty

contrib:存放第三方开发的一些插件,配合solr使用

dist:案例jar包,提供一些jar包(需要从这里拷贝一些jar包)

docs:文档相关

example:存放一些案例(需要从这里拷贝案例的索引库配置,拷贝solr-8.7.0\example\example-DIH\solr\solr内所有文件)

licenses:许可说明书之类的文件

server:与搭建服务相关的文件,主要使用到此文件夹下的文件

 

进入到server文件夹内:如图

主要用到上图使用灰色背景标注的文件夹:

lib:相关联的依赖包(需要从这里拷贝一些jar包)

resources:log相关文件(需要从这里拷贝文件)

solr:可以理解为solr的home目录,需要把这个文件单独复制到任意一个位置,修改文件名称为solr_home(名称任意起),作为solr的home目录

solr-webapp:solr服务端,要想在tomcat服务器内运行,主要使用到此目录

 

具体配置步骤:

(一)创建solr的home目录:也叫家目录(家目录是干啥子的?举个例子,就好比mysql,这个mysql里可以存方多个项目所用到的数据库)。开始创建家目录:进入到solr-8.7.0\server的目录内,复制solr文件夹存方到任意位置,重新命名为solr_home(我是将文件放到D:\install\solr_home)这样solr的家目录创建完了,创建这个家主要目的就是存放索引库,接下来在这个家里创建索引库(可以创建多个索引库,名称可以任意)

 

(二)创建索引库:进入到solr-8.7.0\example\example-DIH\solr,目录内

找到solr文件夹,如上图,复制此文件夹,将此文件夹复制到步骤①创建的solr_home目录内,修改名称为new_core(名称可以任意)

 

(三)将solr服务端添加到tomcat内:进入到solr-8.7.0\server\solr-webapp,目录内

复制webapp文件夹,如上图,将此文件夹复制到apache-tomcat-9.0.17\webapps\内,重命名为solr(名称可以任意)这个名称用于浏览器访问后台管理页面使用,暂时还无法启动服务器进行访问,因为缺少相关联的jar包和日志文件,接下来进行拷贝jar包和日志文件

 

(四)拷贝jar和日志文件:进入到apache-tomcat-9.0.17\webapps\solr\WEB-INF目录内,创建一个文件夹,名称为classes(将日志文件存放到classes文件夹内)

拷贝日志文件:进入到solr-8.7.0\server\resources,目录内

拷贝上图中所有文件到classes文件夹内,修改log4j2.xml文件内容(可能会报错IOException${sys:solr.log.dir}/solr_slow_requests.log路径非法等问题,所以要进行修改)将所有的${sys:solr.log.dir}替换为./logs即可

 

拷贝jar包:进入到solr-8.7.0\server\lib\ext,目录内

如上图,将此目录内所有jar包拷贝到apache-tomcat-9.0.17\webapps\solr\WEB-INF\lib,内

进入到solr-8.7.0\server\lib,目录内

如上图,将此目录内的metrics开头的jar包(5个)拷贝到apache-tomcat-9.0.17\webapps\solr\WEB-INF\lib,内

进入到solr-8.7.0\dist,目录内

如上图,将此目录内的solr-dataimporthandler-8.7.0.jar和solr-dataimporthandler-extras-8.7.0.jar两个jar包拷贝到apache-tomcat-9.0.17\webapps\solr\WEB-INF\lib,内

 

(五)配置服务器需要指定solr的家目录所在位置:进入到apache-tomcat-9.0.17\webapps\solr\WEB-INF,目录内

如上图,找到 web.xml文件,添加内容如下:

 

(六)注释掉访问权限标签:进入到apache-tomcat-9.0.17\webapps\solr\WEB-INF,修改 web.xml文件,将<security-constraint>标签注释掉,如图:

 

(七)访问本地网址:127.0.0.1:8080/solr/index.html 效果如图:

配置solr服务器完成!

 

最后简单记录下solr-dataimporthandler-8.7.0.jar和solr-dataimporthandler-extras-8.7.0.jar这两个jar包的作用:这两个jar包是负责将mysql数据库内容和索引库数据之间相互导入,使用到的工具包,如果涉及到mysql数据数据导入到索引库内还需要单独拷贝mysql-connector-java.jar包

 

这里有三个文件是非常重要的,所在目录为:solr_home\new_core\conf\,内,分别为:

(一)data-config.xml : 数据库连接文件,这个默认是没有的,需要自己创建一个,名字随便定义

<dataConfig> 
	<dataSource type="JdbcDataSource" 
				driver="com.mysql.jdbc.Driver" 
				url="jdbc:mysql://localhost:3306/test"  
				user="root" 
				password="123456"/> 
	<document> 
		<entity name="student_info"  query="select id, name,address from student"> 
			<field column="id" name="id" /> 
			<field column="name" name="s_name" /> 
			<field column="address" name="s_address" /> 
		</entity>
	</document>
</dataConfig>


(二)managed-schema: solr域配置,老版本名字叫 schema.xml,在这里配置域,即搜索的字段(域名)


(三)solrconfig.xml: 一些系统配置,把以上两个文件连接了起来。

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> 
	<lst name="defaults">
		<str name="config">data-config.xml</str> 
	</lst> 
</requestHandler>

下一篇文章将会记录中文分词器的配置!

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值