Solr安装(单机版)
?? 本文記錄的是solr在win下安裝配置使用的過程,最后將solr部署到Linux上通過遠程訪問。下一篇文章會介紹? ?solr集群搭建(SolrCloud)? ? 的安裝!
?
Solr是基于Lucene的全文檢索服務器,性能進行了優化。運行在jetty、tomcat這些web容器中。而Lucene只是一個jar包,不能對外提供服務。在安裝之前我們要先搞清楚下面兩個問題。
一:Solr是如何實現全文檢索的
索引流程
Solr客戶端(瀏覽器、java程序)可以向solr服務器發送post請求,請求內容是包含Field等信息的一個xml文檔, 通過該文檔可以對索引進行維護。
搜索流程
Solr客戶端(瀏覽器、java程序)可以向solr服務器發送get請求,solr服務器返回一個xml文檔。
二:Solrhome和SoleCore
SolreHome是solr服務運行的主目錄,一個solrhome目錄里面包含多個SoleCore。一個SolrCore包含一個Solr實例運行時所需的配置文件和數據文件。Solrcore可以單獨對外搜索和索引提供服務,彼此間沒有半毛錢的關系。Home和core的關系好比,數據庫連接和數據庫的關系,自己體會。
對solr有個大致的認識后我們就要開始安裝了~~? ??
準備工具:? ? 1. solr? ? ? 2. IK Analyzer中文分詞器? ? ? 3.?一個干凈的tomcat
安裝步驟:? ? 1. 安裝solr? ? ? ? ? ? ? ?2.配置中文分詞
安裝步驟:
? 1.1?解壓安裝文件
? 1.2? 復制solr.war到tomcat的webapps下; 然后解壓為solr文件夾,并刪除該solr.war文件。
1.3?把solr的lib文件夾中的5個擴展包復制到tomcat的lib文件夾里面
?
1.4?在tomcat文件夾下面創建mysolrhome文件夾,?并且將solr-4.10-3中的solrhome文件全部復制過來。
1.5?指定solrhome的路徑。
1.6?啟動tomcat? ? ?輸入? ? localhost:8080/solr? ? 能看到solr首頁就說明已經配置成功了。? ?如果啟動tomcat閃退,是因為tomcat找不到jdk路徑,需要修改下startup.bat文件(自行百度)
?
solr啟動成功后,我們如圖搜一句話,會發現它默認的分詞規則是一個漢字就是一個詞,比如秘密是個詞語就不應該分開,下面我們來配置一些擴展信息吧!?
? 2.1?復制IKAnalyzer2012FF_u1.jar到solr的lib文件夾;? 復制3個配置文件到solr的classes文件夾
2.2?自定義分詞規則
<!-- 自定義分詞規則 --><fieldType name="text_ik" class="solr.TextField"><analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/></fieldType> <!--name: 好比數據庫列名type: 字段類型,類型必須是該文件中存在的(例如我們剛剛自定義的那個分詞規則name_ikindexed:開啟索引(例如imgurl我們只是展示不需要搜索,就可以設置為false)stored: 是否要存儲該字段required:是否必須字段docValues:文檔值 multiValued:是否可以多值,存儲多個值,數組存儲:商品大圖、中圖、小圖 --> <field name="item_goodsid" type="long" indexed="true" stored="true"/><field name="item_title" type="text_ik" indexed="true" stored="true"/><field name="item_price" type="double" indexed="true" stored="true"/><field name="item_image" type="string" indexed="false" stored="true" /><field name="item_category" type="string" indexed="true" stored="true" /><field name="item_seller" type="text_ik" indexed="true" stored="true" /><field name="item_brand" type="string" indexed="true" stored="true" /><!--copyField: 復制域,比如我搜索一個詞匯,它可能是商品名可能是店鋪名。我就需要另外自定義一個字段,把商品名和店鋪名和它關聯起來。這里的item_keywords就是我們自定義的字段,source就是源字段,dest就是復制域字段。--><field name="item_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/><copyField source="item_title" dest="item_keywords"/><copyField source="item_category" dest="item_keywords"/><copyField source="item_seller" dest="item_keywords"/> <copyField source="item_brand" dest="item_keywords"/><!--dynamicField:動態域。例如:有的商品有屏幕尺寸,有的商品有規格大小,這些屬性是不固定的,我們就可以用動態域來指定。--><dynamicField name="item_spec_*" type="string" indexed="true" stored="true" />? 此時重啟tomcat? ?選擇我們剛才自定義的分詞規則,發現中文分詞就配置成功了!
將solr部署到linux中:
1.? 創建文件夾? ? ? ? ? ? ?mkdir /usr/local/wulei/solr
2. 把剛配置好的solr壓縮為zip文件,上傳到該文件夾 。
3.?解壓? ?unzip?tomcat7.zip
4. 編輯配置文件? ? ?vim tomcat7/webapps/solr/WEB-INF/web.xml? ? ? ?
修改solrhome地址? ? ? /usr/local/wulei/solr/tomcat7/mysolrhome
5.?修改成功略過這一步? (樓主這里沒有權限,所以在wulei/目錄下設置下權限? ??chmod -R 777 solr? ? 然后重新編輯。)
6. cd tomcat7/bin/? ? ? ? ? ? ? ? ?./startup.sh? ? ? ?瀏覽器輸入? ip:8080/solr? 測試。
7. 【測試】? 若啟動成功而瀏覽器不能訪問,?可能要關閉防火墻。? ?service firewalld stop
?
===============================================
?
擴展知識:? ?在IKAnalyzer.cfg.xml中配置擴展詞和停止詞?(不配也行,沒任何影響,了解下就就夠了)
轉載于:https://www.cnblogs.com/wlwl/p/9651049.html
總結
以上是生活随笔為你收集整理的Solr安装(单机版)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [Algorithm] Good Fib
- 下一篇: C++之重载操作符