(一)Tomcat服務器整合solr-5.5.4,同步mysql數據庫

Solr是基於Apache Lucene ™構建的流行,快速,開源的企業搜索平臺,具有高可靠性,可擴展性和容錯性,可提供分佈式索引,複製和負載均衡查詢,自動故障轉移和恢復,集中配置等。Solr爲世界上許多最大的互聯網站點提供搜索和導航功能

準備

下載Solr5.5.4並解壓

http://archive.apache.org/dist/lucene/solr/

需要下載tomcat8,tomcat7會報錯,下載完之後放在同一個文件夾下,方便配置,新建solr_home文件夾(可自定義文件夾名字)

開始配置

進入solr目錄 ..\apache-solr\solr-5.5.4\server\solr-webapp\ 下將目錄下的webapp拷貝到tomcat下的webapp下並改名solr(可自定義),看下圖

將solr目錄下 xx\apache-solr\solr-5.5.4\server\lib\ext\下的所有jar包

拷貝到 xx\apache-solr\apache-tomcat-8.5.34\webapps\solr\WEB-INF\lib\ 下

對,還有一個log4j的配置文件

E:\apache-solr\solr-5.5.4\server\resources 下的 log4j.properties 拷貝到如下目錄(classes如果沒有需要新建)

 

開始配置solr_home,這個是是存放索引目錄的文件夾

將 xx\apache-solr\solr-5.5.4\server\solr 下所有的文件都 Copy 到solr_home下

 

Copy的事情已經完成了,下面修改配置文件

進入到 tomcat 下的solr目錄 xx\apache-solr\apache-tomcat-8.5.34\webapps\solr\WEB-INF\ 修改web.xml

取消下面這段代碼的註釋,修改 <env-entry-value> 引用的索引絕對路徑,其他的不用動(最好按照我這個目錄來創建,後期熟練了可以自己去修改)

<env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>E:\apache-solr\solr_home</env-entry-value>
       <env-entry-type>java.lang.String</env-entry-type>
</env-entry>

 

啓動

保存剛纔修改的配置,啓動 tomcat

訪問:http://localhost:8080/solr/admin.html

能訪問到頁面算是第一步配置成功了

 

同步數據庫(Mysql)

先導入 jar 包

連接mysql數據庫必需的jar包:mysql-connector-java-5.1.12-bin.jar

xx\apache-solr\solr-5.5.4\dist\目錄下的 solr-dataimporthandler-5.5.4.jar、solr-dataimporthandler-extras-5.5.4.jar

都拷貝到 xx\apache-solr\apache-tomcat-8.5.34\webapps\solr\WEB-INF\lib\ 下

 

 

創建數據表,手動添加一些測試數據

DROP TABLE IF EXISTS `article`;
CREATE TABLE `article` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) DEFAULT NULL,
  `author` varchar(255) DEFAULT NULL,
  `type` varchar(255) DEFAULT NULL,
  `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;

 

在solr_home目錄下新建solr_core(索引單元庫,名字隨意)

複製 xx\apache-solr\solr_home\configsets\sample_techproducts_configs\ 下的 conf 放到剛纔創建的 solr_core下面

 

打開 \solr_home\solr_core\conf\ 下的 data-config.xml (也可能叫db-data-config.xml)修改成自己數據庫(參考文檔

<dataConfig>
    <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver"       
	url="jdbc:mysql://localhost/comtrade" user="root" password="root" />
    <document name="article">
        <entity name="article" pk="id" 
		query="select id,title,author,type from article"
		deltaImportQuery="select * from article where id ='${dih.delta.id}'"
        deltaQuery="select id from article where update_time  > '${dataimporter.last_index_time}'">

		<field name="id" column="id"/>
		<field name="title" column="title"/>
		<field name="author" column="author"/>
		<field name="type" column="type"/> 
		<field name="update_time" column="update_time"/> 

        </entity>
    </document>
</dataConfig>

修改solrconfig.xml,引入剛纔配置好的數據庫連接信息

找到<requestHandler> 標籤,在同級的位置新增一個如下的配置

<!-- Solr導入數據庫數據配置 -->
	<requestHandler name="/dataimport" class="solr.DataImportHandler">
      <lst name="defaults">
            <str name="config">data-config.xml</str>
      </lst>
  </requestHandler>

定義solr顯示的字段,修改managed-schema,添加 field 字段

你數據庫有哪些字段就添加哪些字段,其他的 field字段可以刪除,不然啓動會報錯

 

<!-- 屬性說明 
    <field name="域名(字段名)" 
            type="域的類型,必須匹配數據類型" 
            indexed="是否做索引" 
            stored="是否要存儲"
            required="是否必填,一般id纔會設置" 
            multiValued="是否有多個值,如果爲多值,採用數組方式存儲" /> 
   -->

 

保存修改的配置,重啓tomcat,就會出現一個solr_core

導入數據、查詢

 

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