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