一、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包的代码
代码语言:javascript复制 <lib dir="${solr.install.dir:../../..}/contrib/extraction/lib" regex=".*.jar" />
<lib dir="${solr.install.dir:../../..}/dist/" regex="solr-cell-d.*.jar" />
<lib dir="${solr.install.dir:../../..}/contrib/clustering/lib/" regex=".*.jar" />
<lib dir="${solr.install.dir:../../..}/dist/" regex="solr-clustering-d.*.jar" />
<lib dir="${solr.install.dir:../../..}/contrib/langid/lib/" regex=".*.jar" />
<lib dir="${solr.install.dir:../../..}/dist/" regex="solr-langid-d.*.jar" />
<lib dir="${solr.install.dir:../../..}/contrib/velocity/lib" regex=".*.jar" />
<lib dir="${solr.install.dir:../../..}/dist/" regex="solr-velocity-d.*.jar" />
注: solr.install.dir表示solrCore的位置,需要根据实际jar包的位置更改jar包引用路径
每两个点“..”代表退到上一级目录,所以退了两级目录,到了solr目录,因此上图表示的是在引用的jar包在solr目录下的contrib或者dist目录下
⑤更改dataDir:每个SolrCore都有自己的索引文件目录 ,默认在SolrCore目录下的data中
代码语言:javascript复制<!-- Data Directory
Used to specify an alternate directory to hold all index data
other than the default ./data under the Solr home. If
replication is in use, this should match the replication
configuration.
-->
<dataDir>${solr.data.dir:}</dataDir>
新建的solrCore没有data,data在项目运行时自动生成,如上所示使用默认目录,等于<dataDir>${solr.data.dir:D:/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工程
代码语言:javascript复制 <env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>D:solrsolrHome</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
⑤ 复制log4j.properties文件
在webappssolrWEB-INF下新建classes文件夹,将solr-4.10.3exampleresources下的log4j.properties文件复制到classes目录下
⑥ 启动Tomcat,在浏览器中访问http://localhost:8080/solr ,结果如下:
5)保存一条数据
浏览器输入查询URL:http://localhost:8080/solr/collection1/select?q=title:change.me