Solr整合Tomcat9

导读:本篇文章讲解 Solr整合Tomcat9,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

简介

Solr 采用 Java5 开发,是建立在 Apache Lucene™上的流行的、快速的开源企业搜索平台。

Solr 具有高度可靠、可伸缩和容错能力,提供分布式索引、复制和负载平衡查询、自动故障转移和恢复、集中配置等功能。

Solr 为世界上许多最大的互联网站点的搜索和导航功能提供了动力。

特性

  • 高级全文搜索能力:由Lucene ™提供支持,Solr可实现强大的匹配功能,包括短语,通配符,联接,分组以及任何数据类型
  • 针对大容量流量进行了优化:
  • 拥有基于标准的开放式接口- XML、JSON 和 HTTP
  • 综合的管理界面
  • 实现轻松监控
  • 高度的可扩展性和容错性
  • 灵活的适应性,易于配置
  • 能够实时索引
  • 可扩展的插件架构

相关链接

Solr 各版本下载地址:http://archive.apache.org/dist/lucene/solr/

Solr 官方网站:http://lucene.apache.org/solr/resources.html

安装配置

下载

Solr与lucene版本是同步更新的

书写笔记时用的版本: 8.5.1

solr下载链接

启动solr

自带的启动服务器是Jeety
solr的启动、停止、查看命令:

  1. 启动: bin\solr.cmd start
  2. 停止: bin\solr stopsolr stop -all
  3. 查看: ==bin\solr status

访问地址:http://localhost:8983/solr

Tomcat安装运行环境

  • jdk1.8以上
  • Solr 8.5.1
  • Web服务器:tomcat9

操作步骤

准备Tomcat8/9

修改默认端口+1~端口随意

找到如下内容

D:\RunServer\solr-8.5.1\server\solr-webapp

【webapp】

复制到Tomcat下,并命名为solr

D:\RunServer\apache-tomcat-9.0.22-solr8.5-8081\webapps

【webapp】重命名【solr】

复制lib

D:\RunServer\solr-8.5.1\server\lib\ext下所有jar包,以及D:\RunServer\solr-8.5.1\server\lib下以metrics开头的jar、gmetric4j的jar复制到D:\RunServer\apache-tomcat-9.0.22-solr8.5-8081\webapps\solr\WEB-INF\lib

复制配置文件

D:\RunServer\apache-tomcat-9.0.22-solr8.5-8081\webapps\solr\WEB-INF中,新建【classes】文件夹,将D:\RunServer\solr-8.5.1\server\resources下文件复制到上面新建的文件夹中,Jeety相关可以忽略

创建 SOLR HOME 目录【solr_home】

D:\RunServer\apache-tomcat-9.0.22-solr8.5-8081\webapps\solr\WEB-INF中,新建【solr_home】文件夹

拷贝D:\RunServer\solr-8.5.1\server\solr下所有文件、文件夹复制到上面新建的【solr_home】文件夹

拷贝D:\RunServer\solr-8.5.1下【contrib】、【dist】文件夹复制到上面新建的【solr_home】文件夹

在上面新建的【solr_home】目录中新建【demo_core】文件夹,并拷贝D:\RunServer\solr_home\configsets\sample_techproducts_configs目录下【conf】文件夹至D:\RunServer\solr-8.5.1

修改solrconfig.xml

修改D:\RunServer\solr_home\demo_core\conf中solrconfig.xml文件第75行,修改lib指向路径当前路径

修改前
<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:../../../..}/dist/" regex="solr-ltr-\d.*\.jar" />

  <lib dir="${solr.install.dir:../../../..}/contrib/velocity/lib" regex=".*\.jar" />
  <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-velocity-\d.*\.jar" />
  
  修改后
  <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:../}/dist/" regex="solr-ltr-\d.*\.jar" />

  <lib dir="${solr.install.dir:../}/contrib/velocity/lib" regex=".*\.jar" />
  <lib dir="${solr.install.dir:../}/dist/" regex="solr-velocity-\d.*\.jar" />
修改web.xml

修改D:\RunServer\apache-tomcat-9.0.22-solr8.5-8081\webapps\solr\WEB-INFweb.xml文件

新增如下部分,默认是注释掉的。

其中env-entry-value值为solr_home对应值,及solr_home目录

 添加
 <env-entry>
	    <env-entry-name>solr/home</env-entry-name>
	    <env-entry-value>D:/RunServer/solr_home</env-entry-value>
	    <env-entry-type>java.lang.String</env-entry-type>
   </env-entry>
   
    注释前
  <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>
  
  注释后
  <!--<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>-->

访问测试

http://{ip}:{port}/solr/index.html

http://localhost:8081/solr/index.html

常见问题

从Solr7开始内置log4j升级至log4j2,而log4j2不再支持properties配置文件而需要使用json或xml来配置

因为不使用日志文件,直接注释掉log4j2.xml的标签

启动tomcat时候可能会报错IOException / ${sys:solr.log.dir}/solr_slow_requests.log路径非法等问题

【解决办法】:
将classes下的log4j2.xml更改:将所有的${sys:solr.log.dir}替换为./logs即可

替换前
<RollingRandomAccessFile
        name="SlowLogFile"
        fileName="${sys:solr.log.dir}/solr_slow_requests.log"
        filePattern="${sys:solr.log.dir}/solr_slow_requests.log.%i" >

替换后
<RollingRandomAccessFile
        name="MainLogFile"
        fileName="./logs/solr.log"
        filePattern="./logs/solr.log.%i" >

solr界面介绍

Dashboard – 仪表盘

显示了该Solr实例开始启动运行的时间、版本、系统资源、jvm等信息。

Logging – 日志

显示Solr运行出现的异常或错误。

Core Admin

Solr Core的管理界面。这里可以添加SolrCore实例。

  • Add Core – 添加核心
  • Unload – 卸载核心
  • Rename – 重命名核心
  • Reload – 重新加载核心
  • Optimize – 优化索引库

Add Core

主要是在instanceDir对应的文件夹里生成一个core.properties文件

demo_code

java properties

Solr在JVM运行环境中属性信息,包括类路径、文件编码、jvm设置等信息。可查看java相关的一些属性的信息

Tread Dump

显示Solr Server中当前活跃线程信息,同时也可以跟踪线程运行栈信息。

Core selector

需要在Core Admin中添加core后才有可选项。

Analysis

通过此界面测试索引分析器和搜索分析器的执行情况。

注:solr,分析器是绑定在域的类型中的

Dataimport

可以定义数据导入处理器,从关系数据库将数据导入到solr索引库中。默认没有配置,需要手工配置。

graph TD
    st[web]-->a{Document database}
    a-->c((database))

Documents

操作索引库

Query

检索数据

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/78399.html

(0)
小半的头像小半

相关推荐

极客之家——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!