1. 程式人生 > >solr7.2.1--下載和tomcat8下搭建

solr7.2.1--下載和tomcat8下搭建

一、官網下載

(2)進入官網


(3)客官,選一個吧


(4)等待下載完畢(檔案還不小,哈哈,這還只是個開始.....)


(5)下載解壓後,將資料夾拷貝☞本地D盤下



bin : Windows及Linux下的可執行檔案

contrib:solr擴充套件庫(solr的一些貢獻軟體/外掛,用於增強solr的功能)

dist :solr編譯(build)過程的jar包檔案,以及相關的jar包引用

docs:API文件

example:solr的工程例子

licenses:和solr相關的一些許可資訊

server:solr web應用(webapps)相關配置(什麼lib啊、conf啊、web.xml啊...)

solr需要在一個servlet容器中執行,比如,其預設提供Jetty(Java寫的Servlet容器)


至此,我們的solr下載安裝完畢!

"什麼?這麼簡單嗎?"

"難道不是嗎?" --  哈哈

二、預設在solr自帶的Jetty容器中啟動(首頁訪問)

(1)Windows下CMD切換到solr的bin目錄下(快讀切換,直接在bin路徑下敲CMD)


(2)輸入 solr.cmd start(restart   stop)


(3)瀏覽器訪問:http://localhost:8983

此時,solr中無可用的core


(4)什麼是solr的cores呢?

core從檔案結構的角度來看的話,主要包括一份索引(也可能還包括拼寫檢查的索引)、一堆配置檔案。最主要的配置檔案是:solrconfig.xml和schema.xml。solrconfig.xml從整體上對core進行了配置,例如索引的存放路徑、欄位的最大長度(maxFiedlLength)、寫鎖的超時時間(writeLockTimeout)、鎖型別(lockType)、是否壓縮索引(useCompoundFile)、記憶體索引緩衝區大小(ramBufferSizeMB)、合併因子(mergeFactor)、刪除策略、自動提交策略、快取設定等,它好比是一份組裝機器人的說明書,裡面詳細描述了各個部件(handler)的引數。schema.xml主要是對索引的配置,例如分詞器、欄位名稱+索引方法+儲存方式+分詞方式、唯一標識欄位等,它好比是機器人學習的學習方法,機器人主動或被動接受特定資料,按照配置轉化成索引,然後通過其部件(handler)展示出來,例如:search、moreLikeThis、spellCheck、factedSearcher等。
core從功能方面來說的話,主要是通過各種handler進行工作

以上自於網路,針對solr的兩個主要配置檔案,在我們的7.2.1中有所改變(針對schema.xml

對應的兩個檔案如下

路徑:D:\solr-7.2.1\server\solr\configsets\_default\conf


managed-schema配置的用法,本篇我們不涉及,下一篇講中文分詞器IK的時候,我們會和solr進行對接,再做說明!

三、tomcat下,啟動solr web應用(webapp)

(1)環境 jdk: 1.8.x tomcat :  8.x solr             :   7.x (2)定位目錄:D:\solr-7.2.1\server\solr-webapp

(2)拷貝資料夾+重新命名 --- solr   -- 扔到 tomcat資料夾下的webapps資料夾下面

目前solr還不具備被訪問的能力,繼續完善

(3)定位到目錄:D:\solr-7.2.1\server\lib


圈出來的,不帶"J**"開頭的所有jar包,包括ext資料夾裡面的jar包,全部copy到

目錄:C:\tomcat-8\webapps\solr\WEB-INF\lib 下


(4)定位目錄:C:\tomcat-8\webapps\solr\WEB-INF


(5)定位目錄:D:\solr-7.2.1\server\resources

拷貝log4j.properties日誌屬性配置檔案 ----->C:\tomcat-8\webapps\solr\WEB-INF\classes 資料夾下


(6)tomcat非solr預設的Jetty容器,因此我們需要針對solr的web.xml的下面一段註釋進行home的建立

A. 定位目錄:C:\tomcat-8\webapps\solr\WEB-INF


B.開啟web.xml

預設是註釋的,我簡單翻譯下(哈哈):如果你想用其他的容器來執行你自己的Solr Home,請將下面的env-entry(環境入口)改為你自己的solr配置(屬性)

先放開註釋,新增一個solr_home再說,待會,我們在配置實際的solr_home目錄


將web.xml中的以下內容註釋了,否則待會訪問solr的index.html的時候,會出現403錯誤


如果不註釋掉,啟動tomcat後(前提是建立了solr_home資料夾),訪問.../index.html出現如下錯誤頁面


(7)建立solr_home目錄

定位到目錄:D:\solr-7.2.1\server\solr


拷貝內容至  D:/solr_home資料夾下

configsets:solrcore的配置檔案的模板目錄

(8)定位目錄:D:\solr-7.2.1

將資料夾下的這兩個圈出來的資料夾


拷貝至目錄:D:\solr_home


(9)建立logs資料夾和core資料夾


(10)定位到目錄:D:\solr_home\configsets\_default

A.


B.


(11)至此,solr_home配置完畢,走一波tomcat試試


ok,啟動正常,瀏覽器輸入地址:http://localhost:8080/solr/index.html



(12)切換到Core Admin選項卡,基於我們solr_home資料夾下的newcore資料夾,手動建立一個core

A.


B.



C.


D.切換到Logging選項卡
遇到這種錯別慌,根據message的提示,我們發現core的引包失敗,再仔細一看,原來是路徑錯誤,為什麼我們會先建立core,然後再回過頭來選擇Logging呢? 因為,core對於solr真的很重要啊,沒有core的solr,就是一個沒有生命力的solr 錯誤在哪呢,我們從core的配置檔案solrconfig.xml入手,看一下其內容

明顯我們的newcore和  contrib以及dist(現在知道,solr_home資料夾下為什麼要copy這兩個目錄了吧)是同級的
因此,我們將solrconfig.xml裡的內容改成如下(去掉多餘的../)
儲存,重啟tomcat,再次瀏覽如下
如果你想在tomcat啟動時,記錄solr日誌的輸出dir(D:\solr_home\logs),你可以修改catalina.bat檔案
修改Javacanshu如下:
注意:執行tomcat的bin目錄下面的startup.bat等同於執行命令catalina.bat start -D :Java執行引數 比如:
  1. System.getProperty("solr.log.dir"); //-D後相應的引數  
至此,solr 7.2.1 在tomcat容器中執行的配置就結束了,下一篇