solr是apache下的一個開源項目,是一個高性能赞咙,采用Java5開發(fā)俱饿,基于Lucene的全文搜索服務器。用戶可以通過http請求沮脖,向搜索引擎服務器提交一定格式的XML文件金矛,生成索引;也可以通過Http Get操作提出查找請求勺届,并得到XML/JSON格式的返回結(jié)果驶俊。并且提供了一個完善的功能管理界面, 是一款非常優(yōu)秀的全文搜索引擎免姿。
以前做案例(像crm饼酿,erp,等企業(yè)項目)的時候都是用的模糊查詢胚膊,像什么like,limit這類故俐。但是在一些大型門戶網(wǎng)站、電商網(wǎng)站紊婉,再用這種方法去數(shù)據(jù)庫查药版,首先人多的時候響應慢數(shù)據(jù)庫壓力大,就單這方面就存在問題喻犁。而且搜索完整性很差槽片,比如要搜索華為手機,用solr的話那么關(guān)于華為肢础、手機还栓、華為手機這三個詞在標題或者商品詳情或者分類里面都搜索出來。這個時候總不能用sql語句去數(shù)據(jù)庫查吧乔妈。
1蝙云、windows下安裝配置solr
環(huán)境:
solr:solr-4.10.3
jdk:jdk1.8.0_45
tomcat:apache-tomcat-8.0.45
第一步:
創(chuàng)建一個文件夾solr(名字任意)氓皱,將下載解壓好的tomcat和solr放到solr文件夾下路召。
將solr-4.10.3\example\webapps下的solr.war拷貝到apache-tomcat-8.0.45\webapps下并且解壓縮,解壓之后刪除solr.war
記得解壓后一定要刪除solr.war這個war包波材,不然啟動tomcat的時候會自動解壓這個war包那么會覆蓋我們解壓過的solr文件夾股淡,導致我們之后在solr文件夾里面做的一些操作被覆蓋了。
第二步:
將 solr-4.10.3\example\lib\ext下的所有jar包拷貝到apache-tomcat-8.0.45\webapps\solr\WEB-INF\lib下廷区。
第三步:
在solr目錄下,創(chuàng)建solrhome(也就是solr的家,里面用來存儲solr的相關(guān)配置文件唾那,名字任意),將solr-4.10.3\example\solr下所有文件和文件夾拷貝到solrhome下垢揩。
解釋:solr-4.10.3\example\solr就是一個標準的solrhome,文件夾collection1就是一個solrcore敛瓷,也就是一個solr的實例叁巨,可以理解為一個數(shù)據(jù)庫。當然我們還可以自己來創(chuàng)建其他的solrcore呐籽,比如復制一個collection1然后改一下配置锋勺。
第四步:
配置好了solrhome還不行,這個時候跟solr的服務器(前面整的tomcat)沒任何關(guān)系狡蝶,所以需要告訴tomcat這個solrhome所在的位置庶橱。在apache-tomcat-8.0.45\webapps\solr\WEB-INF下修改web.xml,告訴solrhome的位置
到這里就配置完了。然后啟動tomcat
啟動完之后訪問:localhost:8080/solr
如果能看到solr的后臺管理界面說明就成功了贪惹。
注意:我們用的中文苏章,所以還需要配置中文分析器的,后面打算單獨說這個奏瞬。
2布近、Linux下安裝配置solr
其實會windos下安裝配置solr,會linux基本操作的同學完全能夠自己在linux環(huán)境下安裝配置solr丝格。
第一步:
用工具(如ssh)將下載的tomcat跟solr上傳到linux并且解壓縮(我上傳到了usr目錄下撑瞧,注意上傳的壓縮包要求是linux下的,不要用什么solr-4.10.3.zip這類,一般是xx.tar.gz這種)显蝌。創(chuàng)建文件夾solr预伺。將tomcat跟solr-4.10.3拷貝到該文件夾下,這個跟windows下是一樣的曼尊。
[root@solr usr]# mkdir /usr/local/solr
[root@solr usr]# cp apache-tomcat-7.0.47 /usr/local/solr/tomcat -r(復制目錄需要-r)
將solr部署到tomcat并且改名字(改名字只是為了方便酬诀,不是必須的)
[root@solr usr]# cd solr-4.10.3/dist
[root@solr dist]# ll
總用量 33856
-rw-r--r--. 1 root root 29741796 12月 10 2014 solr-4.10.3.war
-rw-r--r--. 1 root root 17631 12月 10 2014 solr-analysis-extras-4.10.3.jar
....一堆jar包
[root@solr dist]# cp solr-4.10.3.war /usr/local/solr/tomcat/webapps/solr.war
第二步:
啟動tomcat,從而解壓縮solr.war骆撇。加壓縮完之后關(guān)閉tomcat瞒御,刪除solr.war
cd /usr/local/solr
[root@solr solr]# ll
總用量 8
drwxr-xr-x. 4 root root 4096 6月 29 16:39 solrhome
(這個solrhome是后面創(chuàng)建出來的)
drwxr-xr-x. 9 root root 4096 6月 29 16:24 tomcat
[root@solr solr]# cd tomcat
[root@solr tomcat]# bin/startup.sh
[root@solr tomcat]# tail -f logs/catalina.out
…
信息: Server startup in 41004 ms
(說明tomcat起來了)
就表示解壓縮完畢了,關(guān)掉tomcat
[root@solr tomcat]# bin/shutdown.sh
第三步:
把/usr/solr-4.10.3/example/lib/ext目錄下的所有的jar包神郊,添加到solr工程中
[root@solr tomcat]# cd /usr/solr-4.10.3/example/lib/ext
[root@solr ext]# ll
總用量 552
-rw-r--r--. 1 root root 16515 2月 6 2014 jcl-over-slf4j-1.7.6.jar
-rw-r--r--. 1 root root 4959 2月 6 2014 jul-to-slf4j-1.7.6.jar
-rw-r--r--. 1 root root 489884 5月 26 2012 log4j-1.2.17.jar
-rw-r--r--. 1 root root 28688 2月 6 2014 slf4j-api-1.7.6.jar
-rw-r--r--. 1 root root 8869 2月 6 2014 slf4j-log4j12-1.7.6.jar
[root@solr ext]# cp * /usr/local/solr/tomcat/webapps/solr/WEB-INF/lib
第四步:
創(chuàng)建一個solrhome肴裙。
/example/solr目錄就是一個solrhome。復制此目錄到/usr/local/solr/solrhome
[root@solr ext]#cd /usr/local/solr
[root@solr solr]#mkdir solrome
[root@solr solr]#cd /usr/solr-4.10.3/example
[root@solr example]# cp -r solr /usr/local/solr/solrhome
[root@solr example]# cd /usr/local/solr
第五步:
關(guān)聯(lián)solr及solrhome涌乳。需要修改solr工程的web.xml文件蜻懦。
指定solrhome位置
[root@solr solr]# vim tomcat/webapps/solr/WEB-INF/web.xml
啟動tomcat查看日志
[root@solr bin]# ./startup.sh
[root@solr bin]# cd ..
[root@solr tomcat]# tail -f logs/catalina.out
八月 06, 2017 9:01:13 下午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory /usr/local/solr/tomcat/webapps/manager
八月 06, 2017 9:01:13 下午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory /usr/local/solr/tomcat/webapps/examples
八月 06, 2017 9:01:13 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["http-bio-8080"]
八月 06, 2017 9:01:13 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["ajp-bio-8009"]
八月 06, 2017 9:01:13 下午 org.apache.catalina.startup.Catalina start
信息: Server startup in 22040 ms
啟動成功了,訪問solr夕晓,能看到后臺管理頁面說明成功了