本人上周五剛剛配置了一遍centos下配置solr5.3版本,綜合借鑒並改進了一些教程,貼出如下
單位使用內網,本教程暫無截圖,抱歉
另,本人是使用.net編程調用solr的使用的是solrnet,在此推薦一下
首先將軟件包上傳到/tmp目錄下
需要文件如下
jdk-8u60-linux-x64.gz
apache-tomcat-7.0.64.tar.gz
solr-5.3.0.tgz
ik分詞器、拼音分詞器:
IKAnalyzer-5.0.jar
solr-analyzer-ik-5.1.0.jar
pinyin4j-2.5.0.jar
analyzer-pinyin-lucene-5.1.0.jar
analyzer-pinyin-solr-5.1.0.jar
ik分詞器需要ext.dic(字典) stopword.dic(排除詞) IKAnalyzer.cfg.xml(配置)
一、 jdk安裝
[root@svn-server /]# cd /tmp/
[root@svn-server /]#tar zxvf jdk-8u60-linux-x64.gz
[root@svn-server /]#mv jdk1.8.0_60 /usr/
[root@svn-server /]#vi /etc/profile
在最后一行復制以下代碼添加如下內容:
JAVA_HOME=/usr/jdk1.8.0_60/
CLASSPATH=.:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
保存退出(:wq!)后,執行下面命令生效:
source /etc/profile
二、 tomcat安裝
1、將tomcat包減壓到tmp目錄下:
[root@svn-server tmp]tar zxvf apache-tomcat-7.0.64.tar.gz
將tomcat包移動到/usr/local/tomcat 下:
[root@svn-server tmp]mv apache-tomcat-7.0.64 /usr/local/tomcat
2、修改tomcat的server配置,加上utf-8
[root@svn-server tmp]vim /usr/local/tomcat/conf/server.xml
新增URIEncoding="UTF-8"
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
3、tomcat 加賬號
vi /usr/local/tomcat/conf/tomcat-users.xml
倒數第二行回車添加如下:
<user username="admin" password="admin" roles="manage-gui" />
4、啟動tomcat,並測試訪問
[root@svn-server tmp]/usr/local/tomcat/bin/startup.sh
訪問 localhost:8080/manager/html 輸入賬號admin密碼admin成功進入
5、需要注意,若防火牆端口未開啟需要開啟相應端口
[root@svn-server tmp]vi /ect/sysconfig/iptables
在iptables中加一行端口數據,並重啟iptables
[root@svn-server tmp]service iptables stop
[root@svn-server tmp]service iptables start
三、安裝solr
1、解壓solr
[root@svn-server tmp]tar -zxvf solr-5.3.0.tgz
2、將solr包移動到opt目錄下:
[root@svn-server tmp]mv /tmp/solr-5.3.0 /opt/solr
3、把server/solr-webapp中的webapp復制到tomcat的webapps下,並重命名為solr
[root@svn-server tmp]cp -r /opt/solr/server/webapps/webapp /usr/local/tomcat/webapps/solr
4、修改solr home配置(注意:要把這段內容的注釋去掉,否則不生效):
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/opt/solr/server/solr</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
將實例的core拷一個到solrhome,並命名為自己的名字(我的叫qdfs)
cp -r /opt/solr/example/example-DIH/solr/solr /opt/solr/server/solr/qdfs
5、復制solr/server/lib/ext下的jar包到tomcat的solr web的WEB-INF/lib/下:
[root@svn-server tmp]cp /opt/solr/example/lib/ext/*.jar /usr/local/tomcat/webapps/solr/WEB-INF/lib/
將dist\solrj-lib的jar 拷到 tomcat\lib
cp /opt/solr/dist/solrj-lib/*.jar /usr/local/tomcat/lib/
6、在tomcat solr下創建classes,並把example/resources/log4j.properties復制到classes中:
[root@svn-server tmp]mkdir -p /usr/local/tomcat/webapps/solr/WEB-INF/classes
[root@svnserver tmp]cp /opt/solr/server/resources/log4j.properties /usr/local/tomcat/webapps/solr/WEB-INF/classes/
四、配置實例core(我的叫qdfs)
1、創建索引文件夾data
[root@svn-server tmp]mkdir /opt/solr/server/solr/data
2、修改solrconfig
[root@svn-server tmp]vi /opt/solr/server/solr/qdfs/conf/solrconfig.xml
把<lib dir="{solr.instal.dir.....注釋掉。因為不是使用solr自帶的啟動
設置solrdata地址
<dataDir>${solr.data.dir:/opt/solr/server/solr/data}</dataDir>
3、配置實例需要的jar包,也可通過配置上一步solrconfig中lib節點實現同樣作用,但效果不太穩定
[root@svn-server tmp]cp /opt/solr/contrib/analysis-extras/lib/*.jar /usr/local/tomcat/webapps/solr/WEB-INF/lib/
4、修改schema,配置字段分詞器
[root@svn-server tmp]vi /opt/solr/server/solr/qdfs/conf/schema.xml
文檔最后面加上ik分詞器配置
<!--IK分詞器-->
<fieldType name="text_ik" class="solr.TextField">
<analyzer type="index">
<tokenizer class="org.apache.lucene.analysis.ik.IKTokenizerFactory" useSmart="false"/>
<filter class="org.apache.lucene.analysis.pinyin.solr5.PinyinTokenFilterFactory" firstChar="false" minTermLength="2" />
<filter class="org.apache.lucene.analysis.pinyin.solr5.PinyinNGramTokenFilterFactory" nGramChinese="false" nGramNumber="false" />
</analyzer>
<analyzer type="query">
<tokenizer class="org.apache.lucene.analysis.ik.IKTokenizerFactory" useSmart="false"/>
<filter class="org.apache.lucene.analysis.pinyin.solr5.PinyinTokenFilterFactory" firstChar="false" minTermLength="2" />
<filter class="org.apache.lucene.analysis.pinyin.solr5.PinyinNGramTokenFilterFactory" nGramChinese="true" nGramNumber="true" />
</analyzer>
</fieldType>
在field節點中配置
<field name="text_ik" type="text_ik" indexed="true" stored="true"/>
五、ik分詞器配置
1、將ik分詞器的jar拷入lib,solr5.x版本正常的ik分詞器、拼音分詞器不好用,使用的是益達大神博客下載的。大概需要如下jar
IKAnalyzer-5.0.jar
solr-analyzer-ik-5.1.0.jar
pinyin4j-2.5.0.jar
analyzer-pinyin-lucene-5.1.0.jar
analyzer-pinyin-solr-5.1.0.jar
[root@svn-server tmp]cp /tmp/solr_jars/*.jar /usr/local/tomcat/webapps/solr/WEB-INF/lib/
2、ik分詞器需要ext.dic(字典) stopword.dic(排除詞) IKAnalyzer.cfg.xml(配置)的幾個文件拷入solrweb下
[root@svn-server tmp]mkdir /usr/local/tomcat/webapps/solr/WEB-INF/classes
將ext.dic stopword.dic IKAnalyzer.cfg.xml拷入
編輯IKAnalyzer.cfg.xml中ext.dic的注釋放開
六、測試
注意solr網站使用angularjs,需要支持html5的瀏覽器才可正常訪問。
訪問localhost:8080/solr,能夠成功訪問。
點擊Core Admin,點擊AddCore,輸入name:qdfs, InstanceDir:qdfs,提交數據。
訪問ocalhost:8080/solr#/qdfs/analysis, fieldType選擇剛才添加的text_ik 測試分詞效果
參考鏈接:
Linux(CentOS)下完美部署Solr 搜索引擎 http://www.linuxidc.com/Linux/2014-03/98024.htm
跟益達學Solr5之使用IK分詞器 http://iamyida.iteye.com/blog/2220474
跟益達學Solr5之拼音分詞[改進版] http://iamyida.iteye.com/blog/2240657