作者:熊熊oO7sloveV | 来源:互联网 | 2023-05-18 06:23
(一)Solr入门-安装部署1.缘起-方案公司开发的商品交易系统需要提供用户商品实时搜索,商户商品实时发布。使用Mysql+Redis出了第一版后,发现如果查询条件
(一) Solr入门-安装部署
1. 缘起 - 方案
公司开发的商品交易系统需要提供用户商品实时搜索,商户商品实时发布。使用Mysql + Redis出了第一版后,发现如果查询条件复杂的情况下,要创建多个redis排序集合,维护起来非常困难,开发以后也会非常复杂,虽然解决性能问题,但是研发、维护的业务逻辑复杂度暴增。
为了解决业务逻辑复杂性、开发维护难度,并保持高性能,架构师提出Solr + MySQL + Redis的解决方案。Solr解决复杂查询和性能的问题,MySQL提供交易记录完整性,Redis解决热点数据缓存问题。
Solr底层是基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。
根据Solr的特性,配合我们公司的业务大数据量、高并发、高响应的场景,我们设计了一套基础的解决方案。
Nginx、Redis、MySQL、应用服务器都不是我们这次的重点。我们主要是讲解Solr服务的搭建和配置。下面介绍一下大致的流程。
(1)Solr单台服务器部署和开发
(2)Solr Cloud的部署和开发
2. 缘续 - Solr单台服务器部署和开发
(1)下载安装JDK, Tomcat和Solr
Solr目前版本是5.2.1(http://archive.apache.org/dist/lucene/solr/) ,我们使用的是4.10.4
Tomcat的版本是tomcat7,由于我使用的环境是JDK1.7版本的,所以用tomcat7,下载地址是(http://archive.apache.org/dist/tomcat/tomcat-7/),当前版本是7.0.63
Linux环境也需要安装JDK1.7,下载地址 目前版本是 Java SE Development Kit 7u79
具体如何安装请百度。
(2)安装部署Solr
1. 将JDK安装完成后,将tomcat和solr的zip包放入/opt目录,进入opt目录,解压tomcat和solr
2. 进入tomcat目录的webapp目录,创建solr目录,然后将/opt/solr-4.10.4/example/webapps/solr.war 拷贝到/opt/apache-tomcat-7.0.62/webapps/solr/目录下,解压
3. 修改解压后WEB-INF/web.xml内容,将env-entry注释打开,并将当前目录路径配置到env-entry-value中。注意,如果是在eclipse中配置,env-entry-value要放到env-entry-type的下面,要不然会提示错误。
solr/home
java.lang.String
/opt/apache-tomcat-7.0.62/webapps/solr/solr
4 .拷贝/opt/solr-4.10.4/example/solr/目录到tomcat的webapp/solr目录下
这样就能明白为什么/opt/apache-tomcat-7.0.62/webapps/solr/solr,的配置中solr目录下还有个solr的原因
5. 将【slf4j-api-1.6.4.jar】 【commons-logging-1.2.jar】拷贝到solr/WEB-INF/lib目录下
可能是solr团队的疏忽,如果直接运行项目,会提示solr运行不了,这个问题我在windows环境使用eclipse时发现,项目启动会提示缺少SLF4J的jar包和commons-logging的jar包,将这两个jar包拷贝到lib目录后,就可以启动了。在浏览器中输入ip地址和tomcat的端口号,加上项目名称,就会看到solr主界面了。
/opt/apache-tomcat-7.0.62/webapps/solr/solr