1. 程式人生 > 實用技巧 >安裝配置apache-solr(使用apache-tomcat容器)

安裝配置apache-solr(使用apache-tomcat容器)


1.安裝配置tomcat:

2.訪問一下,看tomcat有沒安裝配置成功如果成功的話開始配置solr伺服器(企業應用搜索伺服器):

tar fvxz solr-4.8.1.tgz

拷貝solr.war到tomcat目錄:

cp -fr solr-4.8.1/example/webapps/solr.war /app01/tomcat-8.0.8/webapps/


建立solr主目錄並拷貝檔案

mkdir/app01/tomcat-8.0.8/solrhome

cp -a solr-4.8.1/example/solr/* /app01/tomcat-8.0.8/solrhome/


配置solr home 有三種方法可以配置solr home,任選一種即可: 1,直接修改JAVA全域性環境變數:(適用於該機器只有一個Solr例項):

1.第一種:

wKiom1MpY5OCHi9ZAAAvlUQe7j0152.jpg

2.修改TOMCAT_HOME/bin/catalina.sh,在檔案開頭新增:JAVA_OPTS=’-Dsolr.solr.home=/usr/local/solr’;

wKiom1MpZCCz_qnOAABn36HuF68671.jpg

3.建立solr.xml檔案放於TOMCAT_HOME/conf/Catalina/localhost,內容如下: 可能會目錄不存在,其實啟動一下tomcat,目錄就會有了,也可以自己建立:

vi/app01/tomcat-8.0.8/conf/Catalina/localhost/solr.xml

<?xml version="1.0" encoding="utf-8"?>

<Context docBase="TOMCAT_HOME/webapps/solr.war" debug="0" crossContext="true" >

<Environment name="solr/home" type="java.lang.String" value="/app01/tomcat-8.0.8/solrhome" override="true" />

</Context>

我一般使用第三種方式 其實安裝solr最主要的就是配置solr home,配置好之後,就可以啟動tomcat了

可能會無法訪問,4.4需要拷貝一些solr的jar檔案過去:

wKioL1MpZJbg6elDAACw8dReoAE407.jpg

再重啟一下tomcat訪問應該就正常了 訪問測試 :

wKiom1OefrPTa__NAAL9RjQQZb8279.jpg

下面開始做solr的主從:

master伺服器的配置:


<requestHandler name=“/replication” class=“solr.ReplicationHandler” >

<lst name=“master”>

<!– 執行commit操作後進行replicate操作同樣的設定’startup’, ‘commit’, ‘optimize–>

<str name=“replicateAfter”>commit</str>

<!– 執行startup操作後進行replicate操作–>

<str name=“replicateAfter”>startup</str>

<!– 複製索引時也同步以下配置檔案–>

<str name=“confFiles”>schema.xml,stopwords.txt</str>

<!– 驗證資訊, 由使用者自定義使用者名稱–>

<str name=“httpBasicAuthUser”>jacoxu</str>

<!– 驗證資訊, 由使用者自定義密碼–>

<str name=“httpBasicAuthPassword”>123</str>

</lst>

</requestHandler>


slave伺服器的配置:


<requestHandler name=“/replication” class=“solr.ReplicationHandler” >

<lst name=“slave”>

<!– 主伺服器的URL, 對於多核同步配置,一一對應即可–>

<str name=“masterUrl”>http://127.0.0.1:8080/solr/core0</str>

<!– 60秒進行一次同步操作–>

<str name=“pollInterval”>00:00:60</str>

<!– 壓縮機制,來傳輸索引, 可選internal|external, internal內網, external外網–>

<str name=“compression”>internal</str>

<!– 設定超時時間–>

<str name=“httpConnTimeout”>50000</str>

<str name=“httpReadTimeout”>500000</str>

<!– 驗證資訊, 要與master服務ser器匹配–>

<str name=“httpBasicAuthUser”>jacoxu</str>

<str name=“httpBasicAuthPassword”>123</str>

</lst>

</requestHandler>

SOLR複製模式,是一種在分散式環境下用於同步主從伺服器的一種實現方式,因之前提到的基於rsync的SOLR不同方式部署成本過高,被SOLR1.4版本所替換,取而代之的就是基於HTTP協議的索引檔案傳輸機制,該方式部署簡單,只需配置一個檔案即可。以下講解具體操作步驟:

步驟分主伺服器和從伺服器,允許有多個從伺服器,即從伺服器的配置一樣。


主伺服器:

在solrConfig.xml中:

Xml程式碼 收藏程式碼

<requestHandler name="/replication" class="solr.ReplicationHandler">

<lst name="master">

<str name="replicateAfter">commit</str>

<str name="confFiles">schema.xml,solrconfig_slave.xml:solrconfig.xml</str>

<str name="commitReserveDuration">00:01:00</str>

</lst>

</requestHandler>


說明:

replicateAfter : SOLR會自行在以下操作行為發生後執行復制: 'commit', 'startup' 'optimize',這裡我們選擇commit , 即SOLR每一次接受到commit請求後,會執行復制策略。

confFiles : 待分發的配置檔案,solr 也會將主伺服器上的欄位配置檔案:schema.xml和stopwords.txt,固排檔案: elevate.xml同步到輔伺服器上。

commitReserveDuration: 每次commit之後,保留增量索引的週期時間,這裡設定為5分鐘。




從伺服器:


<requestHandler name="/replication" class="solr.ReplicationHandler">

<lst name="slave">

<str name="masterUrl">http://192.168.172.2:7100/solr/${solr.core.name}/replication</str>

<str name="pollInterval">00:08:00</str>

<!-- external 很容易有索引大小不對, 壓縮檔案損壞這2個問題, 導致複製無法進行, 且一直複製失敗, 測試下來internal沒任何問題 -->

<str name="compression">internal</str>

<str name="httpConnTimeout">1000</str>

<str name="httpReadTimeout">2000</str>

</lst>

</requestHandler>


說明:

masterUrl : 主伺服器同步URL地址

pollInterval:從伺服器同步間隔,即每隔多長時間同步一次主伺服器

httpConnTimeout:設定連線超時(單位:毫秒)

httpReadTimeout:如果設定同步索引檔案過大,則應適當提高此值。(單位:毫秒)

httpBasicAuthUser:驗證使用者名稱,需要和主伺服器一致

httpBasicAuthPassword:驗證密碼,需和主伺服器一致

compression:external or internal 使用SOLR自己的壓縮演算法或應用容器的


轉載於:https://blog.51cto.com/d109wuwei/1426884