tomcat和solr的整合——小步快跑

前言

近期因工作需要使用到solr查询,看了一下solr的功能:Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。【引用百度百科

对于不同的solr版本所使用的JDK版本和JDK版本都有要求。

本篇博客所研究的是两套部署

目录

前言

整合篇一

一、下载安装

二、整合Tomcat

三、创建core

四、数据库配置-导入数据库索引


整合篇一

solr、JDK和tomcat版本

版本
SOLR solr-7.7.1
JDK 1.8
tomcat apache-tomcat-8.5.41
SYSTEM windows10

一、下载安装

1. 因为这里是为了solr的学习而写的教程,所以JDK和tomcat的下载安装在这里就不(自)做(己)说(查)明(找),solr下载比较简单,在Apache Solr官网可以下载 https://lucene.apache.org/solr/downloads.html 找之前的版本,这里会呈现出所有版本以及各种样式下载(这个好似需要翻墙才能够找到,不过相信你既然能找到这篇博客,找个solr应该不算难题)

下载完毕后直接解压就可以使用,解压目录大概是这样的

二、整合Tomcat

  • 将 solr-7.1.0\server\solr-webapp 目录下的 webapp 文件夹拷贝到Tomcat的  apache-tomcat-8.5.41\webapps 文件夹下,并修改文件名为 solr (更名非必要)
  • 将 solr-7.1.0\server\lib\ext 目录下的所有jar包拷贝到 apache-tomcat-8.5.41\webapps\solr\WEB-INF\lib 文件夹下
  • 将 solr-7.1.0\server\lib 目录下的 metrics-* 和 gmetric4j-1.0.7.jar 拷贝到 同上文件夹下
  • 将 solr-7.1.0\server\resources目录下的log4j.properties文件拷贝到 apache-tomcat-8.5.41\webapps\solr\WEB-INF\classes目录下,默认没有classes目录,自己创建
  • 将 solr-7.1.0\server 下的 solr目录拷贝到 apache-tomcat-8.5.41\webapps\solr 下,更改名称为solrhome(这个位置可以选择任意磁盘,名称自定义)
  • 更改 apache-tomcat-8.5.41\webapps\solr\WEB-INF 目录下的 web.xml 文件,此版本中被注释掉了,解开·注释修改<env-entry-value> 标签内容为 5步骤中的文件夹的位置。 去掉安全验证代码,不然每次登陆都需要用户名密码验证,麻烦,还有有一种说法:项目会报403错误。
···

<env-entry>
     <env-entry-name>solr/home</env-entry-name>
     <env-entry-value>D:\solr-server\apache-tomcat-8.5.41\webapps\solr\solrhome</env-entry-value>
     <env-entry-type>java.lang.String</env-entry-type>
</env-entry>

···

 <!-- Get rid of error message -->
 <!-- <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> -->

solrhome 是solr的核心目录,主要的配置文件,索引以及基本数据的保存,插件和数据库的集成都是在此目录下进行配置。进行到此solr和tomcat就算是整合完成了,下面启动测试  http://127.0.0.1:8080/solr/index.html

三、创建core

关于core的创建有两种方式,一种是通过页面先创建(肯定不会成功)然后在导入所需文件才能成功创建,再点击创建才能够成功(不推荐),第二种是手动创建core 核心目录以及所需文件然后在页面点击创建(推荐), 本文采用第二种方式创建core。

  • 在 apache-tomcat-8.5.41\webapps\solr\solrhome 目录下创建一个名为 myfirstcore 的文件夹作为第一个core
  • 将 D:\solr-server\apache-tomcat-8.5.41\webapps\solr\solrhome\configsets\_default 目录下的conf 文件夹拷贝到 myfirstcore 目录下 ,并在myfirstcore 目录下创建一个空文件夹 data  

 

四、数据库配置-导入数据库索引

  • 在 apache-tomcat-8.5.41\webapps\solr\WEB-INF\lib 目录下放入数据库连接的jar包 mysql-connector-java-5.1.34.jar
  • 拷贝 solr-7.1.0\dist 目录下的 solr-dataimporthandler-7.1.0.jar 和 solr-dataimporthandler-extras-7.1.0.jar 包到 apache-tomcat-8.5.41\webapps\solr\WEB-INF\lib目录下
  • 拷贝solr-7.1.0\example\example-DIH\solr\db\conf 目录下的 db-data-config.xml 文件到  apache-tomcat-8.5.41\webapps\solr\solrhome\myfirstcore\conf 目录下改名为 data-config.xml (自定义)内容替换如下
<dataConfig>
  <dataSource type="JdbcDataSource" 
              driver="com.mysql.jdbc.Driver"
              url="jdbc:mysql://127.0.0.1:3306/ssmertong" 
              user="root" 
              password="root"/>
  <document>
    <!--指定需要导入的数据库表名,以及数据 -->
    <entity name="child" 
            query="select id,name,sex,minzu,hukou from child">
    </entity>
  </document>
</dataConfig>
  •  修改 solrconfig.xml 文件,添加数据导入信息,放入<config> 的下级(此处在88行左右处)
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
		<lst name="defaults">
		  <str name="config">data-config.xml</str>
		</lst>
</requestHandler>
  •  修改solr自定义字段,在managed-schema 文件中添加 field,位置放于跟文件中大概113行的field后面即可,id默认已经给出
    <field name="name" type="string" indexed="true" stored="true" multiValued="false"/>
    <field name="sex" type="string" indexed="false" stored="true" multiValued="false"/>
    <field name="minzu" type="string" indexed="true" stored="true" multiValued="false"/>
    <field name="hukou" type="string" indexed="true" stored="true" multiValued="false"/> 

启动Tomcat 测试用例选择自己创建的 core  myfirstcore 在Entity 中选择自己定义的实例 child  然后选中 下方 Auto-Refresh Status ,当数据较多时会自动进行下一组数据的导入。点击Execute 开始导入数据索引

数据导入完成,下面进行查询测试,在页面中 Query中直接点击 Execute Query 查询

此次整合就算是告一段落了。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章