Solr----1、solr7.2.0+jdk1.8+tomcat8部署解析

近期在项目中要做一个站类搜索,我自然而然就想到了solr,solr的版本在不断的更新,功能也越全,所以我决定使用最新版的7.2.0,那么为什么非得用solr里?

1. 什么是solr

Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务。Solr可以独立运行在Jetty、Tomcat等这些Servlet容器中。

Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。

使用Solr 进行创建索引和搜索索引的实现方法很简单,如下:

 创建索引:客户端(可以是浏览器可以是Java程序)用POST 方法向 Solr 服务器发送一个描述Field 及其内容的 XML 文档,Solr服务器根据xml文档添加、删除、更新索引。

 搜索索引:客户端(可以是浏览器可以是Java程序)用GET方法向 Solr 服务器发送请求,然后对Solr服务器返回Xml、json等格式的查询结果进行解析,组织页面布局。Solr不提供构建页面UI的功能。Solr提供了一个管理界面,通过管理界面可以查询Solr的配置和运行情况。

Solr是一个可以独立运行的搜索服务器,使用solr进行全文检索服务的话,只需要通过http请求访问该服务器即可。

2. Solr和Lucene的区别

是一个开放源代码的全文检索引擎工具包,它不是一个完整的全文检索应用。Lucene仅提供了完整的查询引擎和索引引擎,目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者以Lucene为基础构建全文检索应用。

 Solr的目标是打造一款企业级的搜索引擎系统,它是基于Lucene一个搜索引擎服务,可以独立运行,通过Solr可以非常快速的构建企业的搜索引擎,通过Solr也可以高效的完成站内搜索功能。



3. Solr安装配置

Solr和lucene的版本是同步更新的:solr-7.2.0.zip

下载地址:http://archive.apache.org/dist/lucene/solr/

Linux下需要solr-7.2.0.tgz,windows下需要solr-7.2.0.zip。

环境要求:

Solr:7.2.0

jdk环境:1.8(不能使用jdk1.8以下)

服务器:Tomcat 8

解压solr-7.2.0.zip,目录如下:



在Tomcat8文件加下新建solr_h


在solr_h文件夹下新建solrhome


将solr-7.2.0\server\solr下文件全部复制到solrhome文件夹中
solrhome文件夹中新建一个solr_core文件夹,将Tomcat8\solr_h\solrhome\configsets\_default\中conf文件复制到solr_core文件夹下。

SolrHome和SolrCore

Solrhome是solr服务运行的主目录,一个solrhome目录里面包含多个solrcore目录,一个solrcore目录里面了一个solr实例运行时所需要的配置文件和数据文件。每一个solrcore都可以单独对外提供搜索和索引服务。多个solrcore之间没有关系。

Tomcat8\webapps下新建solr文件夹,将solr-7.2.0\server\solr-webapp\webapp下文件全部复制Tomcat8\webapps\solr到文件夹中

solr-7.2.0的server/solr-webapp/lib/ext下的所有jar包复制到上一步solr/WEB-INF/lib下;

solr-7.2.0的server/solr-webapp/lib下的metrics-*和gmetric4j-1.0.7.jar复制到上一步的lib目录下;

solr-7.2.0的server/resources目录下的log4j.properties文件复制到WEB-INF/classes目录下,默认没有classes目录,自己创建;

(可选)在tomcat配置solr日志存放目录,在tomcat安装目录下,打开tomcat8\bin目录,找到catalina.bat文件,用文本编辑器打开该文件,找到:gotJsseOpts这句所在的位置,在set"JAVA_OPTS=%JAVA_OPTS% %JSSE_OPTS%"这句后面加上以下两句:

rem add solr log path

set "JAVA_OPTS=%JAVA_OPTS%-Dsolr.log.dir=../logs/"(注:等号后面的路径可根据实际情况自己配置)。


需要修改的地方:Tomcat8\webapps\solr\WEB-INF\web.xml,在这个xml中放开此注释,修改env-entry-value的路径为solrhome所在的路径


并在这个web.xml的最后注释此代码

<!--  <security-constraint>
 <web-resource-collection>
      <web-resource-name>Disable TRACE</web-resource-name>
      <url-pattern>/</url-pattern>
      <http-method>TRACE</http-method>
    </web-resource-collection>
    <auth-constraint/>
  </security-constraint>
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>Enable everything but TRACE</web-resource-name>
      <url-pattern>/</url-pattern>
      <http-method-omission>TRACE</http-method-omission>
    </web-resource-collection>
  </security-constraint> -->

注意:如果你的tomcat中还要运行别的服务,还要修改tomcat8\conf\server.xml,如果就只有一个solr,直接启动就可以访问


<Context path="/solr/" docBase="E:\Tomcat8\webapps\solr" reloadable="false" crossContext="true">
<Environment name="solr/home" type="java.lang.String" value="E:\Tomcat8\solr_h\solrhome" override="true"/>
  </Context>

docBase:表示tomcat8\webapps\中的solr 

 value:表示E:\Tomcat8\solr_h\中的solrhome

最后通过http://localhost:8888/solr/index.html#/访问就可以了




猜你喜欢

转载自blog.csdn.net/m0_37044606/article/details/79153211