solr介紹html
1、Solr它是一種開放源碼的、基於 Lucene Java 的搜索服務器,易於加入到 Web 應用程序中。 2、Solr 提供了層面搜索(就是統計)、命中醒目顯示而且支持多種輸出格式(包括XML/XSLT 和JSON等格式)。它易於安裝和配置,並且附帶了一個基於 HTTP 的 管理界面。Solr已經在衆多大型的網站中使用,較爲成熟和穩定。 3、Solr 包裝並擴展了 Lucene,因此Solr的基本上沿用了Lucene的相關術語。更重要的是,Solr 建立的索引與 Lucene 搜索引擎庫徹底兼容。 4、經過對Solr 進行適當的配置,某些狀況下可能須要進行編碼,Solr 能夠閱讀和使用構建到其餘 Lucene 應用程序中的索引。 5、此外,不少 Lucene 工具(如Nutch、 Luke)也可使用Solr 建立的索引。可使用 Solr 的表現優異的基本搜索功能,也能夠對它進行擴展從而知足企業的須要。java
準備工做:一、關閉防火牆,二、安裝jdk1.8環境。三、建立生產環境下的目錄/data/soft /,全部安裝包都放在/data/下進行操做,產生的環境都放在/data/soft下面。web
一、查看防火牆狀態:apache
firewall-cmd --state
若是是開啓狀態那麼關閉掉就好了。vim
systemctl stop firewalld.service
二、作以前的準備:jdk環境必定要是jdk1.8,centos7的話好像最低都是jdk1.8的,個人作實驗前查了一下是jdk1.8的,因此就不在繼續作jdk最新版本的了。centos
在這裏不作說明,若是不會請參考我專門作的關於jdk環境的博客.瀏覽器
三、建立安裝目錄tomcat
mkdir -p /data/soft
前三步作好後就直接開始作solr搜索服務器了。服務器
正式開始:網絡
1.下載solr7.2版本,解壓
wget http://mirrors.shuosc.org/apache/lucene/solr/7.2.1/solr-7.2.1.tgz tar -xvf solr-7.2.1.tgz
3.下載tomcat,解壓並測試tomcat是否異常,這步很重要,有的tomcat版本有衝突就會發生異常。
wget https://mirrors.cnnic.cn/apache/tomcat/tomcat-9/v9.0.6/bin/apache-tomcat-9.0.6.tar.gz tar -xvf apache-tomcat-9.0.6.tar.gz mv apache-tomcat-9.0.6 tomcat
對tomcat測試一下,看tomcat是否正常
啓動tomcat:sh bin/startup.sh
查看端口是被監聽
查看服務是否啓動,生產環境會用這種方式查看。
查看tomcat日誌:
生產環境最直接的檢查方式。直接curl命令查看是否可以獲取tomcat頁面。
開始部署配置solr
1.把solr-7.2.0/server/solr-webapp裏面的webapp拷貝到tomcat 的webapps下,重命名爲solr
cp -r solr-7.2.1/server/solr-webapp/webapp/ /data/soft/tomcat/webapps/ mv webapp/ solr
2.拷貝solr-7.2.1\server\lib\ext 下的jar包以及lib目錄下gmetric4j-1.0.7.jar,以metrics開頭的jar包拷貝到 tomcat\webapps\solr 項目的WEB-INF\lib下
cd solr-7.2.1/server/lib/ext/ cp * /data/soft/tomcat/webapps/solr/WEB-INF/lib/ cp gmetric4j-1.0.7.jar metrics-* /data/soft/tomcat/webapps/solr/WEB-INF/lib/
3.拷貝solr-7.2.0\server 下的solr文件夾到其它非中文目錄下,重命名爲solrhome,我是創建到了/data/soft下
cd solr-7.2.1/server/ cp -r solr /data/soft/solrhome
4.修改/data/soft/tomcat/webapps/solr/WEB-INF\web.xml, 找到以下代碼,藍色部分的,/put/your/solr/home/here 改成你本身的solrhome的路徑,個人是/data/soft/solrhome路徑。
vim /data/soft/tomcat/webapps/solr/WEB-INF/web.xml,將註釋去掉,並將solrhome的目錄位置寫進去:
<!-- <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> -->
以下圖:
5..拷貝solr7.2.1\server\resources下的log4j.properties到/data/soft/tomcat/webapps/solr/WEB-INF\classes,若是WEB-INF下沒有classes文件那麼就建立一個classes文件夾
mkdir -p /data/soft/tomcat/webapps/solr/WEB-INF/classes cp solr-7.2.1/server/resources/log4j.properties /data/soft/tomcat/webapps/solr/WEB-INF/classes/
6.啓動tomcat,訪問須要完整路徑,個人是http://192.168.241.131:8080/solr/index.html#/
看下日誌,若是日誌有下面這個樣式就成功了。
在本機上curl一下,發現403,那麼估計頁面也是這樣,以下圖。
7.注意:若是出現上圖403錯誤,編輯web.xml照片截圖中位置,找到以下代碼,將其註釋便可。
加上註釋以下圖:
再次刷新瀏覽器,會出現下圖的頁面。
2.報錯,提示缺乏配置文件:Error CREATEing SolrCore 'new_core': Unable to create core [new_core] Caused by: Can't find resource 'solrconfig.xml' in classpath or '/data/soft/solrhome/new_core'
解決方法:拷貝server/solr/configsets/_default/下的conf文件夾到solrhome/new_core文件夾下
cp -r solr-7.2.1/server/solr/configsets/_default/conf /data/soft/solrhome/new_core/
3.點擊Add Core,此時會顯示添加成功。
四、配置中文分析器
cp solr-7.2.1/dist/solr-dataimporthandler-7.2.1.jar /data/soft/tomcat/webapps/solr/WEB-INF/lib/
2.拷貝lucene-libs文件夾裏的中文分析器的jar包
cp solr-7.2.1/contrib//analysis-extras/lucene-libs/* /data/soft/tomcat/webapps/solr/WEB-INF/lib/
vim solrhome/new_core/conf/managed-schema <!-- ChineseAnalyzer --> <fieldType name="text_ik" class="solr.TextField" positionIncrementGap="100"> <analyzer type="index"> <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/> </analyzer> <analyzer type="query"> <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/> </analyzer> </fieldType>
以下圖:
4.自定義搜索業務域
<field name="item_title" type="text_ik" indexed="true" stored="true"/> <field name="item_sell_point" type="text_ik" indexed="true" stored="true"/> <field name="item_price" type="plong" indexed="true" stored="true"/> <field name="item_image" type="string" indexed="false" stored="true" /> <field name="item_category_name" type="string" indexed="true" stored="true" /> <field name="item_desc" type="text_ik" indexed="true" stored="false" /> <field name="item_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/> <copyField source="item_title" dest="item_keywords"/> <copyField source="item_sell_point" dest="item_keywords"/> <copyField source="item_category_name" dest="item_keywords"/> <copyField source="item_desc" dest="item_keywords"/>
以下圖:
5.重啓tomcat,就能發現自定義域已經出現
6.測試分詞效果
好了,到此爲止,solr就告一段落,咱們在部署的時候,心必定要細,有的地方千萬仔細,進過這兩天的熟悉給公司的阿里雲服務器作這個,借籤網絡各位大神的手筆,寫的不足之處,請你們多多關照。