在学习solr过程中,磕磕碰碰,遇到过许多问题,所以特写下笔记,以供需要的时候时常翻阅,也给能看到该博文的博友提供一个不全面的参考。
一、solr简介:
Solr是一个独立的企业及搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。solr可以运行在Jetty、Tomcat等服务器上面。
二、solr下载:
solr最新版的下载链接是:http://mirrors.hust.edu.cn/apache/lucene/solr/6.4.2/,通过上述地址下载Zip文件即可,但是基于不使用最新版的保守心理,我任然在适用4.10.3版本,这里附上4.10.3版的下载地址:http://archive.apache.org/dist/lucene/solr/4.10.3/,当然,如果还是下载不了,请到我的cnbolg下下载。
三、solr安装在Tomcat下:
1)环境介绍:
JDK:jdk1.8.0_121,请使用1.7及以上版本,笔者在JDK1.6上solr配置之后跑不起来
Tomcat:apache-tomcat-7.0.73
solr:solr-4.10.3
2)solr目录介绍:下载solr加压后的目录结构如图所示
bin是solr运行的脚本
contrib是solr的一些插件,用于扩展solr的功能
dist该文件夹下包含build过程中产生的war和jar文件,以及相关的依赖文件
doc:solr的文档
example:solr官方提供的一些示例程序,简要介绍几个示例
solr:该目录是一个包含了默认配置信息的Solr的Core目录
multicore:该目录包含了在Solr的multicore中设置的多个Core目录
webapps:该目录中包括一个solr.war,该war可作为solr的运行实例工程
licenses:solr相关的一些许可信息
3)创建solr工程
①、创建solr文件夹,在solr文件夹下创建solrHome文件夹,solrHome是solr运行的主目录,其下可以建立多个solr实例工程,及solrCore,solrCore单独对外提供一个搜索服务。
②、将solr-4.10.3examplesolr下的所有文件copy到新建的solr工程的solrHome下,collection1即是一个solrCore,每个solrCore下的conf文件下都有solrconfig.xml文件,这是solrCore运行的配置文件。(solr-4.10.3是解压下载的Zip文件)
③、将solr-4.10.3下的contrib和dist 复制到solr下,与solrHome同级
④、加载jar包:打开solrCore(collection1)下conf文件中的solrconfig.xml文件,找到引用jar包的代码
注:1、solr.install.dir表示solrCore的位置,需要根据实际jar包的位置更改jar包引用路径
2、每两个点“..”代表退到上一级目录,所以退了两级目录,到了solr目录,因此上图表示的是在引用的jar包在solr目录下的contrib或者dist目录下
⑤、更改dataDir:每个SolrCore都有自己的索引文件目录 ,默认在SolrCore目录下的data中
新建的solrCore没有data,data在项目运行时自动生成,如上所示使用默认目录,等于<dataDir>${solr.data.dir:E:/solr/solrHome/collection1/data}</dataDir>,如需自定义data则更改对应的路径。
4)solr工程部署到Tomcat上
①、将solr-4.10.3dist下的solr-4.10.3.war复制到Tomcat的webapp目录下,并改名为solr.war
②、启动Tomcat后,solr.war自动解压之后删除solr.war;或者用360压缩工具解压。
③、将solr-4.10.3examplelibext下所有jar包复制到webappssolrWEB-INFlib目录下
④、修改webappssolrWEB-INF下的web.xml文件:目的是将Tomcat中的solr关联上之前创建的solr工程
<!--设置solr工程关联Tomcat服务器--> <env-entry> <env-entry-name>solr/home</env-entry-name> <!--在此处修改为之前创建的solr工程的路径--> <env-entry-value>E:solrsolrHome</env-entry-value> <env-entry-type>java.lang.String</env-entry-type> </env-entry>
⑤、复制log4j.properties文件
在webappssolrWEB-INF下新建classes文件夹,将solr-4.10.3example esources下的log4j.properties文件复制到classes目录下
⑥、启动Tomcat,在浏览器中访问http://localhost:8080/solr ,结果如下:
由此,solr的安装便完成,接下来即可进行solr的学习了!