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 查詢

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

 

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