第一安裝和配置Solr
- 1、Solr單獨運作方式
- 2、運作Solr
- 3、Solr常用指令
- 4、Solr+tomcat方式
-
- 4-1、拷貝web項目:
- 4-2、配置HOME目錄
- 4-3、修改web.xml配置
- 4-4、配置solr日志
- 4-5、啟動tomcat
1、Solr單獨運作方式
下載下傳最新版solr,位址:http://lucene.apache.org/solr/downloads.html
zip 檔案下載下傳将它解壓縮到一個檔案夾:

Solr的檔案夾:
bin檔案夾中包含用來啟動和停止solr伺服器的腳本。
example檔案夾包含幾個示例檔案。
server檔案夾包含logs檔案夾,所有的Solr的日志都寫入該檔案夾。在server檔案夾下的Solr檔案夾包含不同的集合或核心(core/collection)。
2、運作Solr
Apache Solr 帶有一個内置的Jetty 伺服器。但在我們開始之前, 我們必須驗證
JAVA_HOME 已經配置,注意需要64 位的JDK。
可以使用指令行腳本啟動伺服器,去solr 的bin 目錄,從指令提示符輸入出以下指令:
solr start,将啟動Solr 伺服器,預設端口為8983。如果指定其它端口号可以使用solr start -p 端口号。
最新版的Solr在指令行輸入有可能出現 solr start -p 端口 有可能會報以下錯誤:
如果出現以上錯誤可以使用 .\solr start -p 端口号進行啟動。
以上提示出現後證明服務啟動成功(啟動過程中如果列印java 異常堆棧log4j2.xml 檔案
名、目錄名或卷智語法不正确找不到檔案,不妨礙正常使用solr 可以忽略),或者找到solr 主目錄下bin/solr.cmd,把所有的file:都改為file:///比如"file:%DEFAULT_SERVER_DIR%\scripts\cloud-scripts\log4j2.xml"修改為"file:///%DEFAULT_SERVER_DIR%\scripts\cloud-scripts\log4j2.xml"
停止服務: solr stop -p 端口号如果不寫端口号solr stop -all 也可以。
現在,可以在浏覽器中打開以下網址檢視solr 管理控制台AdminUI:
http://localhost:8888/solr/
3、Solr常用指令
solr start -p 端口号 單機版啟動solr服務。
solr restart -p 端口号 重新開機solr服務。
solr stop -p 端口号 關閉solr服務。
solr create -c name 建立一個core 執行個體。
官方文檔的位址:https://lucene.apache.org/solr/guide/8_6/
4、Solr+tomcat方式
4-1、拷貝web項目:
從D:\solr-8.7.0\server\solr-webapp\webapp 拷貝到 tomcat 的 webapp目錄下,并重命名為solr。

拷貝擴充依賴jar:
将D:\solr-8.7.0\server\lib\ext 檔案夾下的所有的jar包拷貝到 D:\Tomcat 9.0\webapps\solr\WEB-INF\lib下。
将D:\solr-8.7.0\server\lib下的metrics-.jar 包拷貝到D:\Tomcat 9.0\webapps\solr\WEB-INF\lib下。
4-2、配置HOME目錄
建立HOME 目錄(D:\solrhome),并把solr 配置檔案拷貝到HOME 目錄中
将 D:\solr-8.7.0\server\solr 檔案夾内所有的檔案拷貝到 D:\solrhome。
4-3、修改web.xml配置
修改solr伺服器目錄中web.xml(D:\Tomcat 9.0\webapps\solr\WEB-INF)檔案制定solr_home所在位置。
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>d:\solrhome</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
并且注釋以下代碼,否則項目彙報403錯誤。
<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>
4-4、配置solr日志
拷貝日志檔案 log4j2.xml 從D:\solr-8.7.0\server\resources 到 D:\Tomcat 9.0\webapps\solr\WEB-INF\lib
在solrhome 下建立檔案夾logs
修改修改Tomcat\bin 下的catalina.bat,增加solr.log.dir 系統變量,指定solr 日志記錄存
放位址
如果不配置tomcat 下的stdout 檔案會顯示錯誤日志:
22:58:23.129 [localhost-startStop-1] ERROR org.apache.solr.util.StartupLoggingUtils -
Missing Java Option solr.log.dir. Logging may be missing or incomplete.
打開tomcat 的bin (D:\Tomcat 9.0\bin)檔案夾下的catalina.bat 添加一行配置:
set JAVA_OPTS="-Dsolr.log.dir=D:\solrhome\logs"
用solr7.4 和solr7.5 配置後還是報以上異常
如果把log4j2.xml 拷貝到classes (D:\Tomcat 9.0\webapps\solr\WEB-INF)下則報如下異常:
ERROR Unable to create file ${sys:solr.log.dir}/solr.log java.io.IOException: 檔案名、目錄
名或卷智語法不正确。
在怎麼修改都不對的情況下,直接把log4j2.xml 放在classes 下并把檔案中所有的
${sys:solr.log.dir}修改為具體的路徑,比如:d:/solrhome/logs,就可以列印日志了。
4-5、啟動tomcat
啟動tomcat,通路http://localhost:8080/solr/index.html#/
看到頁面及辨別搭建成功。