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自己的壓縮算法或應用容器的