安裝配置apache-solr(使用apache-tomcat容器)
1.安裝配置tomcat:
略
2.訪問一下,看tomcat有沒安裝配置成功如果成功的話開始配置solr伺服器(企業應用搜索伺服器):
拷貝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.第一種:
2.修改TOMCAT_HOME/bin/catalina.sh,在檔案開頭新增:JAVA_OPTS=’-Dsolr.solr.home=/usr/local/solr’;
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檔案過去:
再重啟一下tomcat訪問應該就正常了 訪問測試 :
下面開始做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