solr7.3.1在CentOS7上的安裝

1 solr的下載

從Solr官方網站(http://archive.apache.org/dist/lucene/solr/7.3.1/ )下載Solr最新版本html

根據Solr的運行環境,Linux下須要下載solr-7.3.1.tgz,windows下須要下載solr-7.3.1.zipjava

2 solr的環境

Solr是java開發的,在windows上面和Linux上面的安裝同樣。mysql

windows上面的安裝教程能夠參照:http://www.cnblogs.com/jepson6669/p/9053880.htmlweb

1.須要安裝jdk【須要jdk1.8及以上版本】sql

2.安裝環境CentOS7數據庫

3.須要安裝tomcat(非必需,可使用內置的小服務器jetty)apache

個人環境:vim

SolrSolr7.3.1windows

Jdk1.8.0_162tomcat

Tomcatapache-tomcat-8.5.31

3 安裝過程

第一步:把solr的壓縮包上傳到Linux系統

第二步:在usr/local/建立solr目錄

# mkdir /usr/local/solr

第三步:解壓solr到剛剛建立的solr目錄下

[root@i soft]# tar -xvf solr-7.3.1.tgz -C /usr/local/solr

第四步:解壓解壓tomcat到solr目錄下

[root@i soft]# tar -xvf apache-tomcat-8.5.31.tar.gz -C /usr/local/solr

第五步:把 solr\solr-7.3.1\server\solr-webapp下的 webapp 文件夾拷貝到tomcat 的webapps下,重命名爲solr7,也能夠是其餘名字

[root@iz solr-webapp]# cp -r webapp /usr/local/solr/apache-tomcat-8.5.31/webapps/

# mv webapp solr7

 

第六步:拷貝solr-7.3.1\server\lib\ext 下的jar包到 tomcat\webapps\solr7 項目的WEB-INF\lib下

[root@i ext]# cp * /usr/local/solr/apache-tomcat-8.5.31/webapps/solr7/WEB-INF/lib/

第七步:拷貝solr-7.3.1\server\lib\目錄下gmetric4j-1.0.7.jar,以及以metrics開頭的jar包拷貝到WEB-INF\lib下

[root@i lib]# cp gmetric4j-1.0.7.jar /usr/local/solr/apache-tomcat-8.5.31/webapps/solr7/WEB-INF/lib/
[root@iz lib]# cp metrics-*.* /usr/local/solr/apache-tomcat-8.5.31/webapps/solr7/WEB-INF/lib/

另外還須要拷貝/usr/local/solr/solr/dist下面的以solr-dataimporthandler開頭的jar包WEB-INF\lib下

 

[root@ dist]# cp /usr/local/solr/solr/dist/solr-dataimporthandler-*.* /usr/local/solr/tomcat/webapps/solr7/WEB-INF/lib/

 

第八步:拷貝solr-7.3.1\server 下的solr文件夾到/usr/local/solr目錄下,重命名爲solrhome。

[root@i server]# cp -r solr /usr/local/solr/
[root@iz solr]# mv solr solrhome

 

第九步:關聯solr和solrhome.須要修改tomcat\webapps\ solr7\WEB-INF\web.xml

第十步:解決日誌不可以正常顯示問題

1.在/sor7/WEB-INF/下面建立一個classes文件夾

 

2.拷貝solr7.3.1\server\resources下的log4j.properties到剛剛建立的classes目錄下。

 3.在/usr/local/solr/建立一個logs文件夾

4.修改log4j.properties文件

 

第十一步:修改tomcat的端口,避免衝突

第十二步:啓動tomcat,訪問solr時後面記得加上「index.hmtl」

 

4 HTTP Status 403 – Forbidden解決

修改/usr/local/solr/apache-tomcat-8.5.31/webapps/solr7/WEB-INF/web.xml文件。

而後重啓tomcat.

而後訪問終於看到了歡迎頁面:

這也就是說明安裝成功了。

5 不能添加核心的解決

1 事故現場

name:自定義的名字,建議和instanceDir保持一致

instanceDir:solrhome目錄下的示例類目

dataDir:默認填data便可

config:指定配置文件,/usr/local/solrhome/new_core/conf/solrconfig.xml

schema:指定schema.xml文件,new_core/conf/schema文件(其實是managed-schema文件)

注意!在schema.xml下面有一個感嘆號!

 

若是你無論他,直接點擊Add Core會提示solrconfig.xml文件找不到

2 事故解決

第一步:進入到solrhome/new_core目錄,複製/solr-7.3.1/server/solr/configsets/_default/conf文件夾到new_core目錄下

[root@i new_core]# cp -r /usr/local/solr/solr-7.3.1/server/solr/configsets/_default/conf ./

第二步:切換到solrhome目錄,複製/usr/local/solr/solr-7.3.1/contrib文件夾到solrhome目錄下

[root@i solrhome]# cp -r  /usr/local/solr/solr-7.3.1/contrib/ ./

第三步: 複製solr-7.3.1/dist文件夾到solrhome目錄下

[root@iz2ze7k6ycnx8b40ynghxtz solrhome]# cp -r /usr/local/solr/solr-7.3.1/dist/ ./

第四步:修改核心配置文件solrhome/new_core/conf/solrconfig.xml,

主要是修改contrib目錄,dist目錄的相對位置。

  <lib dir="${solr.install.dir:..}/contrib/extraction/lib" regex=".*\.jar" />
  <lib dir="${solr.install.dir:..}/dist/" regex="solr-cell-\d.*\.jar" />

  <lib dir="${solr.install.dir:..}/contrib/clustering/lib/" regex=".*\.jar" />
  <lib dir="${solr.install.dir:..}/dist/" regex="solr-clustering-\d.*\.jar" />

  <lib dir="${solr.install.dir:..}/contrib/langid/lib/" regex=".*\.jar" />
  <lib dir="${solr.install.dir:..}/dist/" regex="solr-langid-\d.*\.jar" />

  <lib dir="${solr.install.dir:..}/contrib/velocity/lib" regex=".*\.jar" />
  <lib dir="${solr.install.dir:..}/dist/" regex="solr-velocity-\d.*\.jar" />

第五步:重啓服務便可正常建立Core,而後instanceDir文件夾(new_core)裏會自動生成一個core.properties文件

 

new_core文件夾裏面的內容以下:

core.properties文件中的內容以下:

到這裏就解決了不能添加核心問題。

3 補充

之後再次須要建立solrCore核心的時候,就不用這麼麻煩了。

能夠直接複製第一建立的new_core目錄,修改core.properties文件中的name便可

6 ikanalyzer 中文分詞器

準備好Ikanalyzer文件,目錄結構以下:

裏面包括IK Analyzer 2個架包:ik-analyzer-solr5-5.x.jar、solr-analyzer-ik-5.1.0.jar

IK配置文件 IKAnalyzer.cfg.xml、ext.dic、stopword.dic

第一步:拷貝ik-analyzer-solr5-5.x.jar到/usr/local/solr/tomcat/webapps/solr7/WEB-INF/lib目錄下面

第二步:拷貝ext.dic ,stopword.dic,ikAnalyzer.cfg.xml到/usr/local/solr/tomcat/webapps/solr7/WEB-INF/classes目錄下面。

前面的安裝過程當中我已經建立過classes目錄,若是沒有的話,建立一個。

ikAnalyzer.cfg.xml文件內容以下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">  
<properties>  
    <comment>IK Analyzer 擴展配置</comment>
    <!--用戶能夠在這裏配置本身的擴展字典 -->
    <entry key="ext_dict">ext.dic;</entry> 
    
    <!--用戶能夠在這裏配置本身的擴展中止詞字典-->
    <entry key="ext_stopwords">stopword.dic;</entry> 
    
</properties>

ext.dic裏面添加新詞彙:好比「王者榮耀」這類的。

stopword.dic裏面添加不須要分詞的詞語,好比 「的 了  個 你 我 他」

第三步:修改/usr/local/solr/solrhome/new_core/conf下面的managed-schema文件。

 1.添加一個自定義的fieldType

<!-- IKAnalyzer-->
<fieldType name="text_ik" class="solr.TextField">
     <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>

2.定義一個field,指定field的Type屬性爲text_ik

<!--IKAnalyzer Field-->
<field name="title_ik" type="text_ik" indexed="true" stored="true" />
<field name="content_ik" type="text_ik" indexed="true" stored="false" multiValued="true"/>

配置完成後的效果以下:

第四步:重啓tomcat,讓配置生效

第五步:測試

 

7  拼音分詞器的安裝

首先須要準備好拼音分詞器所需的jar包。

另外還須要用到第六步的ikanalyzer 中文分詞器裏面的一個jar包。

第一步:將solr-analyzer-ik-5.1.0.jar,pinyinAnalyzer4.3.1.jar,pinyin4j-2.5.0.jar三個jar包

導入到/usr/local/solr/tomcat/webapps/solr7/WEB-INF/lib目錄下面。

 

第二步:修改/usr/local/solr/solrhome/new_core/conf下面的managed-schema文件

 在其中加入下面的內容

     <!-- IK 拼音分詞 -->
     <fieldType name="text_pinyin" class="solr.TextField" positionIncrementGap="0">
        <analyzer type="index">
            <tokenizer class="org.apache.lucene.analysis.ik.IKTokenizerFactory"/>
            <filter class="com.shentong.search.analyzers.PinyinTransformTokenFilterFactory" minTermLenght="2" />
            <filter class="com.shentong.search.analyzers.PinyinNGramTokenFilterFactory" minGram="1" maxGram="20" />
        </analyzer>
        <analyzer type="query">
            <tokenizer class="org.apache.lucene.analysis.ik.IKTokenizerFactory"/>
            <filter class="com.shentong.search.analyzers.PinyinTransformTokenFilterFactory" minTermLenght="2" />
            <filter class="com.shentong.search.analyzers.PinyinNGramTokenFilterFactory" minGram="1" maxGram="20" />
        </analyzer>
     </fieldType>

 

第三步:重啓tomcat,查看效果

 

8 使用dataimport插件批量導入數據

配置前的效果

第一步:把dataimport插件的依賴的jar包添加到/usr/local/solr/solrhome/contrib/dataimporthandler/lib下,lib目錄沒有就建立一個

jar包的位置:

第二步:導入數據庫的驅動包到/usr/local/solr/solrhome/contrib/dataimporthandler/lib下

數據的jar包須要本身去找。

一二兩步後的效果:

 第三步:修改/usr/local/solr/solrhome/new_core/conf下面的solrconfig.xml配置文件,添加一個requestHandler

<lib dir="${solr.install.dir:..}/contrib/dataimporthandler/lib" regex=".*\.jar" />
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
    <lst name="defaults">
      <str name="config">data-config.xml</str>
     </lst>
</requestHandler> 

第四步:建立一個data-config.xml文件保存到/usr/local/solr/solrhome/new_core/conf目錄下

# vim data-config.xml

裏面的內容以下:

<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
<dataSource type="JdbcDataSource"
          driver="com.mysql.jdbc.Driver"
          url="jdbc:mysql://39.105.94.154:3306/lucene"
          user="tom"
          password="tom"/>
<document>
    <entity name="product" query="SELECT pid,name,catalog_name,price,description,picture FROM products ">
         <field column="pid" name="id"/>
         <field column="name" name="product_name"/>
         <field column="catalog_name" name="product_catalog_name"/>
         <field column="price" name="product_price"/> 
         <field column="description" name="product_description"/>
         <field column="picture" name="product_picture"/>
    </entity>
</document>
</dataConfig>

dataSource和entity裏面的內容根據本身的實際狀況修改.

對於沒有的域須要本身配置。

  <!--product-->
   <field name="product_name" type="text_ik" indexed="true" stored="true"/>
   <field name="product_price"  type="float" indexed="true" stored="true"/>
   <field name="product_description" type="text_ik" indexed="true" stored="false" />
   <field name="product_picture" type="string" indexed="false" stored="true" />
   <field name="product_catalog_name" type="string" indexed="true" stored="true" />

   <field name="product_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>
   <copyField source="product_name" dest="product_keywords"/>
   <copyField source="product_description" dest="product_keywords"/>

在managed-schema文件中加入上面的代碼,效果以下

第五步:重啓tomcat,讓配置生效

 

第六步:點擊Execute按鈕導入數據。

勾選Auto-Refresh Status 能夠自動刷新,看到導入的狀態

 

入數據前會先清空索引庫,而後再導入。

相關文章
相關標籤/搜索