Solr多核的配置
Solr 多核(MultiCore)配置 ?
Solr Multicore意義
???? ? Solr Multicore?是?solr 1.3?的新特性。其目的一個solr實例,可以有多個搜索應(yīng)用。< xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" />
????? ?我們既可以把不同類型的數(shù)據(jù)放到同一index中,也可以使用分開的多indexes。基于這一點,你只需知道如何使用多?indexes(實際上就是運行Solr的多實例)。盡管如此,為每一個類型添加一個完整的Solr實例會顯得太臃腫龐大。
????Solr1.3引入了Solr core的概念,該方案使用一個Solr實例管理多個indexes,這樣就有熱點core(hot core)的重讀(reloading)與交換(swap,通常是讀index與寫index交換),那么管理一個?core或index也容易些。每個Solr core由它自己的配置文件和索引數(shù)據(jù)組成。在多core執(zhí)行搜索和索引幾乎和沒有使用core一樣。你只是添加core的名字為各自不同的URL。單core情況下的如下搜索:
?
http://localhost:8080/solr/select?q=dave%20matthews
在多core環(huán)境下,你可以通過如下方式訪問一個名為mbartists的core:
http://localhost:8080/solr/core0/select?q=dave%20matthews
并非在URL中引入core name的參數(shù)名值對,而是用不同的context。這樣就可以像在單core中執(zhí)行你的管理任務(wù),搜索,更新操作。
?
MultiCore的配置方法
1、找到solr下載包中的example文件夾,在它的下面有個multicore文件夾,將這個文件夾下面的core0、core1和solr.xml拷貝到c:\solr-tomcat\solr下面。
注意:有一個?solr.xml(這只是默認(rèn)文件,當(dāng)然也可以指定別的文件),如:
<?xml version="1.0" encoding="UTF-8" ?>?
?????????<solr persistent="false">???
???????????<cores adminPath="/admin/cores">?
?????????????<core name="core0" instanceDir="core0" />?
?????????????<core name="core1" instanceDir="core1" />?
???????????</cores>?
?????????</solr>?
?
這個文件是告訴solr應(yīng)該加載哪些core,<cores>……</cores>里有?core0、core1。core0(可以類比以前的solr.home)/conf目錄下有schema.xml與solrconfig.xml,可以把實際應(yīng)用的/solr/conf/schema.xml復(fù)制過來(注意:solrconfig.xml不要復(fù)制)。
?
2、啟動tomcat,訪問應(yīng)用,就可以看到有?Admin core0?和?Admin core1
http://localhost:8080/solr/
http://localhost:8080/solr/core0/admin/
http://localhost:8080/solr/core1/admin/
http://localhost:8080/solr/core1/admin/analysis.jsp
?
3、采用上面的默認(rèn)solr.xml,索引文件將存放在同一個目錄下面,在這里將存放在C:\solr-tomcat\solr\data,如果你想更改目錄,或者兩個應(yīng)用存放在不同的目錄,請參見下面的xml。
<core name="core0" instanceDir="core0">
????<property name="dataDir" value="/opt/solr-tomcat/solr/data/core0" />
?</core>
<core name="core1" instanceDir="core1">
????<property name="dataDir" value="/opt/solr-tomcat/solr/data/core1" />
?</core>
?
?
You can also specify properties in solr.xml which can be used in the solrconfig.xml and schema.xml files.
<solr persistent="true" sharedLib="lib">
?<property name="snapshooter" value="/home/solr-user/solr/bin/snapshooter.sh" />
?<cores adminPath="/admin/cores">
? <core name="core0" instanceDir="core0">
??? <property name="dataDir" value="/data/core0" />
? </core>
? <core name="core1" instanceDir="core1" />
?</cores>
</solr>
?
一些關(guān)鍵的配置值是:??1.Persistent="false"指明運行時的任何修改我們不做保存。如拷貝。如果你想保存從啟動起的一些改動,那就把 persistent設(shè)置為true。如果你的index策略是完成建index到一個純凈的core中然后交換到活動core 那么你絕對應(yīng)該設(shè)為true。
? 2.sharedLib="lib"指明了所有core的jar文件的lib目錄。如果你有一個core有自己需要的jar文件,那么你可以把他們置入到core/lib目錄。例如:karaoke core 使用 Solr Cell來索引化富文本內(nèi)容,因此那些用來解析和抽取富文本的jar文件被放到./examples/cores/karaoke/lib/.
?
為何使用多core
Solr實例支持多core比啟用多index要好(do more)。多core同時解決了在生產(chǎn)環(huán)境下的一些關(guān)鍵需求:
1.重建索引
2.測試配置變更
3.合并索引
4.運行時重命名core
為何多core不是默認(rèn)的?
多core是1.3版本中才加的,1.4后更成熟。我們強(qiáng)烈建議你使用多core,既是你現(xiàn)在的solr.xml只配置了一個core,雖然會比單個索引稍復(fù)雜,但可以帶來管理core上的好處。或許一天單個core可能最終RELOAD and STATUS命令,又或許單個core最終會被廢禁。多個core會是Solr將來支持大規(guī)模分布式索引的關(guān)鍵。因此,以后可以期待更多。
你可以得到更多的關(guān)于Solr的資料:http://wiki.apache.org/solr/CoreAdmin。 ??
總結(jié)
- 上一篇: Java程序编译和运行的过程
- 下一篇: Scalaz(27)- Inferenc