一. 什么是solr
把所有的数据都放到一个索引库里,查询的时候,直接从索引库里查询数据库.使用solr的原因,solr的前身是lucene. Solr技术就是一个全文检索的一个方案.solr也是apache公司.
Solr是一个javaweb项目
Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。
Solr可以独立运行,运行在Jetty、Tomcat等这些Servlet容器中,Solr 索引的实现方法很简单,用 POST 方法向 Solr 服务器发送一个描述 Field 及其内容的 XML 文档,Solr根据xml文档添加、删除、更新索引 。Solr 搜索只需要发送 HTTP GET 请求,然后对 Solr 返回Xml、json等格式的查询结果进行解析,组织页面布局。Solr不提供构建UI的功能,Solr提供了一个管理界面,通过管理界面可以查询Solr的配置和运行情况。
solr查询比我们直接在数据库里面查询迅速
二. 应用场景
比如:淘宝,京东等大数据量查询时,用solr加快查询速度
三. solr的安装及配置(windows环境下)
1. solr的下载
从Solr官方网站(http://lucene.apache.org/solr/ )下载Solr4.10.3,根据Solr的运行环境,Linux下需要下载lucene-4.10.3.tgz,windows下需要下载lucene-4.10.3.zip。
Solr使用指南可参考:https://wiki.apache.org/solr/FrontPage。
2. solr的文件结构
将solr-4.10.3.zip解压:
bin:solr的运行脚本(内置的服务器,不建议使用)
contrib:solr的一些软件/插件,用于增强solr的功能。
dist:该目录包含build过程中产生的war和jar文件,以及相关的依赖文件。
docs:solr的API文档
example:solr工程的例子目录:
example/solr:
该目录是一个包含了默认配置信息的Solr的Core目录。
example/multicore:
该目录包含了在Solr的multicore中设置的多个Core目录。
example/webapps:
该目录中包括一个solr.war,该war可作为solr的运行实例工程。
licenses:solr相关的一些许可信息
3. 运行环境
solr 需要运行在一个Servlet容器中,Solr4.10.3要求jdk使用1.7以上,Solr默认提供Jetty(java写的Servlet容器),本教程使用Tocmat作为Servlet容器,环境如下:
Solr:Solr4.10.3
Jdk:jdk1.7.0_72
Tomcat:apache-tomcat-7.0.53
4. solr整合Tomcat
4.1 Solr Home与SolrCore
创建一个Solr home目录,SolrHome是Solr运行的主目录,目录中包括了运行Solr实例所有的配置文件和数据文件,Solr实例就是SolrCore,一个SolrHome可以包括多个SolrCore(Solr实例),每个SolrCore提供单独的搜索和索引服务。
example\solr是一个solr home目录结构,如下:
上图中“collection1”是一个SolrCore(Solr实例)目录 ,目录内容如下所示:
说明:
collection1:叫做一个Solr运行实例SolrCore,SolrCore名称不固定,一个solr运行实例对外单独提供索引和搜索接口。
solrHome中可以创建多个solr运行实例SolrCore。
一个solr的运行实例对应一个索引目录。
conf是SolrCore的配置文件目录 。
data目录存放索引文件需要创建
4.2 整合步骤
4.2.1 整合思想
(1) 因为solr这个项目,也是一个javaweb项目,需要服务器来运行,(jetty服务器,tomcat服务器),得把solr的项目放到tomcat里的webapps目录下.
(2) 思想: solr是一个项目,还得用一个自己创建的javaweb项目访问solr去, 把solr这台tomcat服务器的端口号,做修改 改为8081.
(3) 复制war包
(4) 把数据库里的数据查询出来放到一个索引库里,我们在页面中搜索数据的时候是通过去索引库直接搜索出来的.
(5) 配置索引库的位置.
(6) 复制jar包
4.2.2 复制一份Tomcat
若tomcat里面有如图所示RUBS,删除掉这个文件夹,没有则罢
4.2.3 修改server.xml
将里面的三个端口号都改一下
4.2.4 复制solr下面的dist/solr-4.10.1.war到apache-tomcat-solr/webapps
4.2.5 启动Tomcat测试
下面是启动后解压出来的包:
将solr.war删除掉,否则Tomcat再次启动的时候还会生成solr包
4.2.6 将solr-4.10.1\example/solr复制到F盘,改名为solrhome
4.2.7 修改apache-tomcat-solr\webapps\solr\WEB-INF\web.xml
4.2.8 复制jar包,将solr-4.10.1\example\lib\ext下的jar包复制到apache-tomcat-solr\webapps\solr\WEB-INF\lib
4.2.9 启动tomcat,浏览器测试
四、启动后台管理项目
1. 创建solr索引实例,可以入下图所示:
1.1 复制collection1文件,并改名collection2
1.2 修改collection2中的core.properties
1.3 测试,重新启动Tomcat
未复制collection1之前的
复制之后的