solr安裝
環境準備:
jdk 1.8
樓主安裝目錄爲:
/usr/local/jdk1.8/
tomcat8
PS: 最後是8.5版本之後 8.5之下版本 Apache已停止維護
樓主安裝目錄爲:
/usr/local/solr-tomcat/
solr-7.2.1 目前最新版本(2018-01-15)
一: 下載
創建下載目錄 並進入到下載目錄
mkdir -p /usr/local/software/ && cd /usr/local/software/
下載方式一:
solr 下載地址
wget http://archive.apache.org/dist/lucene/solr/7.2.1/solr-7.2.1.zip
下載方式二:
官方下載Solr
解壓目錄
unzip /usr/local/software/solr-7.2.1.zip
把Solr的項目拷貝到solr-tomcat的webapps下
cp -R /usr/local/software/solr-7.2.1/server/solr-webapp/webapp/ /usr/local/solr-tomcat/webapps/
注意: 路徑爲: solr-7.2.1/server/solr-webapp/webapp,而不是: solr-7.2.1/server/solr-webapp/ 否則Tomcat不能成功啓動
爲Solr更名: 把webapp更改爲solr
mv /usr/local/solr-tomcat/webapps/webapp /usr/local/solr-tomcat/webapps/solr
二: 調整項目
拷貝solr-7.2.1/server/lib/ext/*下的jar包到 solr-tomcat/webapps/solr/WEB-INF/lib/下
cp -R /usr/local/software/solr-7.2.1/server/lib/ext/* /usr/local/solr-tomcat/webapps/solr/WEB-INF/lib/
拷貝solr-7.2.1/dist/solr-dataimporthandler-7.2.1.jar 包到 solr-tomcat/webapps/solr/WEB-INF/lib/下
cp -R /usr/local/software/solr-7.2.1/dist/solr-dataimporthandler-7.2.1.jar /usr/local/solr-tomcat/webapps/solr/WEB-INF/lib/
拷貝solr-7.2.1/dist/solr-dataimporthandler-extras-7.2.1.jar 包到 solr-tomcat/webapps/solr/WEB-INF/lib/下
cp -R /usr/local/software/solr-7.2.1/dist/solr-dataimporthandler-extras-7.2.1.jar /usr/local/solr-tomcat/webapps/solr/WEB-INF/lib/
拷貝: metrics開頭的5個文件
名稱如下:
metrics-core-3.2.2.jar
metrics-ganglia-3.2.2.jar
metrics-graphite-3.2.2.jar
metrics-jetty9-3.2.2.jar
metrics-jvm-3.2.2.jar
cp -r /usr/local/software/solr-7.2.1/server/lib/metrics*.* /usr/local/solr-tomcat/webapps/solr/WEB-INF/lib/
拷貝solr-7.2.1/server下的solr 到/usr/local/solrHome 作爲solr的主目錄
cp -R /usr/local/software/solr-7.2.1/server/solr/* /usr/local/solrHome
查看拷貝成功的目錄
[root@jsyfdev001 solrHome]# ls -al /usr/local/solrHome
total 24
drwxr-xr-x 3 root root 4096 Jan 15 18:28 .
drwxr-xr-x. 35 root root 4096 Jan 15 18:23 ..
drwxr-xr-x 4 root root 4096 Jan 15 18:28 configsets
-rw-r--r-- 1 root root 3095 Jan 15 18:28 README.txt
-rw-r--r-- 1 root root 2170 Jan 15 18:28 solr.xml
-rw-r--r-- 1 root root 1006 Jan 15 18:28 zoo.cfg
修改WEB-INF/web.xml的配置 把/put/your/solr/home/here指向到/usr/local/solrHome
sudo vim /usr/local/solr-tomcat/webapps/solr/WEB-INF/web.xml
自帶的Solr配置
<!--
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/put/your/solr/home/here</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
-->
修改後的Solr配置
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<!--注意: 此處做了修改Solr的主目錄 指向到/usr/local/solrHome-->
<env-entry-value>/usr/local/solrHome</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
創建classes 用來存放日誌文件
mkdir -p /usr/local/solr-tomcat/webapps/solr/WEB-INF/classes
拷貝solr-7.2.1/server/resources/log4j.properties 到solr-tomcat/webapps/solr/WEB-INF/classes下
cp /usr/local/software/solr-7.2.1/server/resources/log4j.properties /usr/local/solr-tomcat/webapps/solr/WEB-INF/classes/
三: 開放端口
sudo vim /etc/sysconfig/iptables
添加開放端口:
# solr-tomcat端口 注意: 35080爲你的Tomcat端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 35080 -j ACCEPT
注意: 如果你的服務器是阿里雲需要在阿里雲上添加開放端口
// TODO 啓動solr-tomcat
啓動後打開網址出錯:
http://ip:35080/solr/index.html
出錯信息爲:
- 權限控制
HTTP Status 403 - Access to the requested resource has been denied
解決方法如下:
註釋web.xml中權限控制配置
sudo vim /usr/local/solr-tomcat/webapps/solr/WEB-INF/web.xml
在web.xml的最後面 把下面的代碼註釋掉
修改前:
<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>
修改後:
<!--
<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>
-->
- 404頁面
HTTP Status 404 - Servlet LoadAdminUI is not available
解決方法如下:
檢查以上jar是否全部放到solr/WEB-INF/lib中
檢查是否拷貝solr-7.2.1/server下的solr 到/usr/local/solrHome 作爲solr的主目錄
OK, 至此Solr搭建完畢!
下面說一下如何使用Solr
使用Solr
- 創建Core Admin
注: 此處相當於建造一個關係型數據庫的表, 用來存放數據的
當按照圖片上步驟執行到第六步時, 會出現以下錯誤
錯誤的大概意思爲:
在我們點擊Add core之後Solr會自動幫我們生成的一個文件(路徑爲: /usr/local/solrHome/new_core/conf/)中沒有找到solrconfig.xml
org.apache.solr.common.SolrException:org.apache.solr.common.SolrException: Could not load conf for core new_core: Error loading solr config from /usr/local/solrHome/new_core/conf/solrconfig.xml
解決方法如下:
#創建Solr的core admin(上圖第一步驟的時候)
mkdir -p /usr/local/solrHome/new_core
# 刪除new_core下所有的文件, 防止添加在上圖第一步的時候 創建多餘的文件
rm -rf /usr/local/solrHome/new_core/
拷貝_default下的conf目錄
cp -R /usr/local/software/solr-7.2.1/server/solr/configsets/_default/* /usr/local/solrHome/new_core/
#重新啓動Solr-tomcat 再次執行上圖的步驟 便不全報錯
# 關閉Solr-tomcat
/usr/local/solr-tomcat/bin/shutdown.sh
# 啓動Tomcat
/usr/local/solr-tomcat/bin/startup.sh