Centos7下單機部署Solr7.3


       本章重點介紹CentOS7 下部署Solr7 ,添加核心Core配置,Dataimport導入,中文分詞的相關操作。
一、准備工作
    演示環境是在虛擬機下安裝的CentOS7、java JDK8、apache-tomcat-8.5.29。
    在CentOS7 下安裝jdk8以及tomcat8.5 的安裝方法可以搜索相關教程,這里不再贅述。
    注意:solr6.0以上,官方建議使用jdk8,tomcat8。
二、下載 solr-7.3.0
    官網  http://www.apache.org/dyn/closer.lua/lucene/solr/7.3.0 找合適的鏡像下載solr ,並上傳到虛擬機。
    也可以使用wget 直接下載 
#cd /usr/local
# wget http://mirrors.shu.edu.cn/apache/lucene/solr/7.3.0/solr-7.3.0.zip
  
  看到如上圖所示
  等待幾分鍾,下載完成后在當前目錄(/usr/local)下解壓
#unzip solr-7.3.0.zip
#cd solr-7.3.0
    注:若提示unzip command not found ,請先安裝zip、unzip命令,再解壓。
#yum install -y unzip zip  
三、與tomcat結合部署Solr7
  1.進入solr7解壓后的目錄后,復制並重命名solr-7.3.0目錄里的server/solr-webapp/webapp文件夾到tomcat的webapps目錄為solr7。
    演示環境的tomcat 安裝目錄為/usr/local/java/apache-tomcat-8.5.29
# cd solr-7.3.0
#  cp -r server/solr-webapp/webapp  /usr/local/java/apache-tomcat-8.5.29/webapps/solr7 
 
      
 2.將需要的jar包,復制到部署的solr7 的WEB-INF/lib/ 下
    將server/lib/ext/下的所有jar復制到 /usr/local/java/apache-tomcat-8.5.29/webapps/solr7/WEB-INF/lib/下
# cd server/lib/ext/
#  ll
#  cp  *  /usr/local/java/apache-tomcat-8.5.29/webapps/solr7/WEB-INF/lib/
  
   將server/lib/metrics* 開頭的5個jar復制到 /usr/local/java/apache-tomcat-8.5.29/webapps/solr7/WEB-INF/lib/下
# cd ..
# ll
# cp metrics-*  /usr/local/java/apache-tomcat-8.5.29/webapps/solr7/WEB-INF/lib/
  
3.復制log4j配置文件
  把server/resources/目錄下的log4j.properties,復制到剛才部署的solr7的WEB-INF/,要創建一個classes的目錄
# mkdir /usr/local/java/apache-tomcat-8.5.29/webapps/solr7/WEB-INF/classes
# cp ../resources/log4j.properties /usr/local/java/apache-tomcat-8.5.29/webapps/solr7/WEB-INF/classes
      
4.創建solr home
  復制並重命名solr-7.3.0/servier/solr為/usr/local/solr7home
# cd  ../../
# cp -r server/solr  /usr/local/solr7home
# ls /usr/local/solr7home
  
5.將tomcat/webapps下的solr7與新建的solr7home關聯
  a.需要修改tomcat里solr7/WEB-INF/web.xml文件
# vim  /usr/local/java/apache-tomcat-8.5.29/webapps/solr7/WEB-INF/web.xml
 
  b.找到solr/home的env-entry(如下圖所示),打開注釋,修改env-entry-value值為新建的solr7home
     
 c.然后到最下方,將這一段注釋掉,不然會報403錯誤,完成后保存退出
     
6.啟動tomcat
# /usr/local/java/apache-tomcat-8.5.29/bin/start.sh
  在電腦上訪問下服務器的solr服務,演示環境的ip為192.168.1.220
  訪問http://192.168.1.220:8080/solr7/index.html,出現如下頁面表示solr服務搭建好了。
     
四、添加solr核心Core配置
    在管理頁面,點擊Core Admin,選擇AddCore,添加核心
          
     name:自定義的名字,建議和instanceDir保持一致
     instanceDir: solrhome目錄下的實例類目
     dataDir:默認填data即可
     config:指定配置文件,new_core/conf/solrconfig.xml
     schema:指定schema.xml文件,new_core/conf/schema文件(實際上是managed-schema文件)
    注意:紅色框內的內容,instanceDir and dataDir need to exist before you can create the core
    要求在創建solr核心時,instanceDir實例目錄在sold home 中存在
    如果instanceDir實例目錄不存在,點擊添加會有如下提示,但會在solr/home中多一個instanceDir實例目錄。
    
a.將solr7home/configsets/sample_techproducts_configs/目錄下的conf 拷貝到 mycore 目錄下,目錄結構:mycore/conf/
b.將contrib目錄,dist目錄拷貝到solrhome目錄中
# cd /usr/local/solr7home/
# mv new_core micro
# ll
# cp -r configsets/sample_techproducts_configs/conf  mycore/
# ll
# cp -r /usr/local/solr-7.3.0/contrib ./
# cp -r /usr/loacl/solr-7.3.0/dist ./
# ll

c.修改mycore/config/solrconfig.xml
  將文件中<lib dir="${solr.install.dir:../../../..}.." 替換為 <lib dir=“/usr/local/solr7home/…."
# vim mycore/config/solrconfig.xml
  
  替換后結果如下:
        
  d.刷新頁面,點擊Core Admin 添加Core,instanceDir就是剛才配置的目錄mycore,出現下圖所示表示solr核心創建成功
      
五、Dataimport(導入數據)
     點擊Dataimport 時,出現 The solrconfig.xml file for this index does not have an operational DataImportHandler defined!
     解決如下:
  a.復制sorl7home/dist/solr-dataimporthandler*.jar和mysql的jdbc驅動mysql-connector-java-5.1.42.jar 到tomcat的webapps/solr7/WEB-INF/lib/下
# ll dist/
# cp -r dist/solr-dataimporthandler-*  /usr/local/java/apache-tomcat-8.5.29/webapps/solr7/WEB-INF/lib/
# vim mycore/config/solrconfig.xml
  
 b.在mycore/config/solrconfig.xml添加DataImportHandler
     
 c.在mycore/conf/ 目錄下創建data-config.xml(數據庫配置和對應的字段)
     
   目錄結構如下:
     
 d.重啟tomcat,再次訪問,如果出現下圖內容則說明配置成功
      
  e.添加數據庫中對應的Field(注意solr已經存在的field 不需要添加 ,具體可在managed-schema中查看已有的field),
     然后數據才能完整的導入。否則導入數據進行query 查詢的時候只有id ,_version_兩個字段。
       
 f. 數據導入
   Command:full_import:全量導入;delta_import:增量導入。
   Clean:在索引開始構建之前是否刪除之前的索引,默認為true
   Commit:在索引完成之后是否提交。默認為true
   Execute:執行導入
   Refresh Status:刷新后才能看到數據發生了變化(點一次刷新一次)
   選擇 全量導入,Execute執行,Refresh Status刷新查看狀態,其他都選默認即可。
六、中文分詞
   1.將solr 自帶的中文分詞jar復制到,tomcat的webapps/solr7/WEB-INF/lib/ 下managed-schema
# cd  /usr/local/solr7home/   
# cp contrib/analysis-extras/lucene-libs/lucene-analyzers-smartcn-7.3.0.jar  /usr/local/java/apache-tomcat-8.5.29/webapps/solr7/WEB-INF/lib
# vim mycore/confg/managed-schema
  
  2.在mycore/confg/managed-schema 添加如下內容
    <!--text  Chinese -->
    <fieldType name="text_cn" 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>
     
   3.重啟tomcat
      


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM