solr-7.6.0.tgz安裝
1.下載地址
http://lucene.apache.org/solr/
2 配置solr 到tomcat(關鍵)
將solr 的webapp文件複製到tomcat的webapps目錄下並命名爲solr
3 配置依賴包
將solr下 /ext 文件夾中 所有的jar 包複製到 tomcat 裏的solr 目錄下的WEB-INF/lib 下
cp -r /opt/solr-7.6.0/server/lib/ext/ /opt/tomcat-solr/webapps/solr/WEB-INF/lib/
將solr下 server/lib/metrics開頭的jar包複製到 tomcat裏的solr 目錄下的WEB-INF/lib 下
cp -r /opt/solr-7.6.0/server/lib/metrics*.jar /opt/tomcat-solr/webapps/solr/WEB-INF/lib/
4 創建tomcat solr 的 classes 文件
mkdir /opt/tomcat-solr/webapps/solr/WEB-INF/classes
複製 jetty-logging.properties,log4j2.xml 到 classes 文件夾下
cp /opt/solr-7.6.0/server/resources/jetty-logging.properties /opt/tomcat-solr/webapps/solr/WEB-INF/classes
cp /opt/solr-7.6.0/server/resources/log4j2.xml /opt/tomcat-solr/webapps/solr/WEB-INF/classes
5 添加日誌目錄
修改tomcat的bin/catalina.sh文件
大概246行的位置添加
set "JAVA_OPTS=$JAVA_OPTS -Dsolr.log.dir={你的日誌目錄}"
6 創建 solr 的core 的主目錄(也就是存放core的位置)
cp -r /opt/solr-7.6.0/server/solr /opt/solrhome
7 修改配置文件指定solr的home
vim /opt/tomcat-solr/webapps/solr/WEB-INF/web.xml
添加以下內容:(注意第三行的值要替換成你們solr的home的絕對路徑)
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/opt/solrhome</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
8 解決限制資源訪問
如果我們按照上面的配置好了,並啓動好了tomcat,那麼我們直接去訪問我們的solr 會發現這個錯:
HTTP Status 403 - Access to the requested resource has been denied,拒絕我們的訪問資源請求。
解決辦法:
註釋solr/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>
-->
9 啓動成功訪問如下圖示
然後啓動tomcat ,我們訪問:http://ip:port/solr/index.html
10 新建core
a 創建core 目錄
我這裏的solr 的home目錄是 /opt/solrhome
mkdir /opt/solrhome/test1
b 添加配置文件
將配置文件複製到 test1 目錄下
cp /opt/solrhome/configsets/_default/conf/ /opt/solrhome/test1/
c 添加data目錄
用於存放數據
mkdir /opt/solrhome/test1/data/
d 添加core.properties 文件
name=test1 ,test1值換成你們core的名稱。
echo "name=test1" >/opt/solrhome/test1/core.properties
我們重新啓動就可以在 core 看到我們新加的目錄名稱了。
e 啓動效果圖
到的問題以及解決辦法:
錯誤內容**
2019/1/9 上午11:01:16
WARN false x:ljf_dev SolrConfig Couldn't add files from /opt/solrhome/ljf_dev/../../../../contrib/extraction/lib filtered by .*\.jar to classpath: /opt/solrhome/ljf_dev/../../../../contrib/extraction/lib
2019/1/9 上午11:01:16
WARN falsex:ljf_dev SolrConfig Couldn't add files from /opt/solrhome/ljf_dev/../../../../dist filtered by solr-cell-\d.*\.jar to classpath: /opt/solrhome/ljf_dev/../../../../dist
錯誤原因
上面的錯誤是說加載不到那些jar包 ,上面的這些jar包還在我們解壓的文件裏面,它肯定是找不到,我們先找到我們這個配置文件,然後修改它尋找的路徑。
配置文件是 core 目錄下的 conf 裏的 solrconfig.xml
我們可以看到默認的配置路徑是: 這個路徑是solr的安裝路徑,我們可以更改成絕對路徑
<lib dir="${solr.install.dir:../../../..}/contrib/extraction/lib" regex=".*\.jar" />
<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-cell-\d.*\.jar" />
<lib dir="${solr.install.dir:../../../..}/contrib/clustering/lib/" regex=".*\.jar" />
<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-clustering-\d.*\.jar" />
<lib dir="${solr.install.dir:../../../..}/contrib/langid/lib/" regex=".*\.jar" />
<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-langid-\d.*\.jar" />
<lib dir="${solr.install.dir:../../../..}/contrib/velocity/lib" regex=".*\.jar" />
<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-velocity-\d.*\.jar" />
解決辦法
將那些jar包放在一個固定路徑,然後更改配置文件裏的路徑爲絕對路徑
#備份下配置文件
cp /opt/solrhome/test1/conf/solrconfig.xml /opt/solrhome/test1/conf/solrconfig.xml.bak
#將依賴文件複製到 tomcat solr 下
cp -r /opt/solr-7.6.0/dist/ /opt/tomcat-solr/webapps/solr/
cp -r /opt/solr-7.6.0/contrib/ /opt/tomcat-solr/webapps/solr/
然後更改配置文件 /opt/solrhome/test1/conf/solrconfig.xml 修改爲絕對路徑,下面爲爲修改後的。
<lib dir="/opt/tomcat-solr/webapps/solr/contrib/extraction/lib" regex=".*\.jar" />
<lib dir="/opt/tomcat-solr/webapps/solr/dist/" regex="solr-cell-\d.*\.jar" />
<lib dir="/opt/tomcat-solr/webapps/solr/contrib/clustering/lib/" regex=".*\.jar" />
<lib dir="/opt/tomcat-solr/webapps/solr/dist/" regex="solr-clustering-\d.*\.jar" />
<lib dir="/opt/tomcat-solr/webapps/solr/contrib/langid/lib/" regex=".*\.jar" />
<lib dir="/opt/tomcat-solr/webapps/solr/dist/" regex="solr-langid-\d.*\.jar" />
<lib dir="/opt/tomcat-solr/webapps/solr/contrib/velocity/lib" regex=".*\.jar" />
<lib dir="/opt/tomcat-solr/webapps/solr/dist/" regex="solr-velocity-\d.*\.jar" />
這樣重新啓動tomcat 就不會再有警告了。
11 配置IK中文分詞器
a 下載 IKAnalyzer6.5.0.jar
百度網盤下載地址
鏈接:https://pan.baidu.com/s/1dUQM9vuRGID5ZnpvvNG4NA
提取碼:hpcj
下載 IKAnalyzer6.5.0.jar,然後複製到tomcat的webapps/solr/WEB-INF/lib/目錄下
添加如下配置文件到 webapps/solr/WEB-INF/classes/ 目錄下,同時添加擴展詞典ext.dic和停用詞典stopword.dic
webapps/solr/WEB-INF/classes/IKAnalyzer.cfg.xml
<properties>
<comment>IK Analyzer 擴展配置</comment>
<!--用戶可以在這裏配置自己的擴展字典 -->
<entry key="ext_dict">ext.dic;</entry>
<!--用戶可以在這裏配置自己的擴展停止詞字典-->
<entry key="ext_stopwords">stopword.dic;</entry>
</properties>
b 增加新的字段類型
修改配置文件 solrhome\collection1\conf\managed-schema:
solrhome\collection1\conf\managed-schema
在<schema…> 標籤下增加如下代碼
<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
<field name="mytext_ik" type="text_ik" indexed="true" stored="true" multiValued="false" />
效果如圖
重新測試分詞 如圖所示,使用中文分詞後,就可以看到分詞的效果了。 注: FieldType 記得選增加新的字段類型 中的 text_ik 或者 mytext_ik