solr的配置網上講的很多,但是實施總是遇到困難,現總結如下
1.從官網下載下傳solr core的源碼包,将solrwar包放到tomcat的webapps檔案夾下,其它web容器亦然.
運作tomcat ,解壓出來solr的檔案夾.
2.single core配置:以solr自帶例子做講解
2.1.建立solrhome目錄:d:/test/solrcore/singlecore ,從solr源碼的example包下複制solr包
2.2.在tomcat 下的 webappss的solr包 web-inf目錄下修改web.xml的
<env-entry-name>solr/home</env-entry-name>
<env-entry-value> d:/test/solrcore/singlecore</env-entry-value>
<env-entry-type>java.lang.string</env-entry-type>
2.3.修改solrhome目錄下的solr下的conf的solrconfig.xml檔案
<datadir>d:/test/solrcore/data/singlecore</datadir>
此目錄放置的是solr的data索引檔案
2.4.啟動solr控制台,即可
3.multicore 配置:以solr core源碼的multicore為例
3.1. 建立solrhome目錄:d:/test/solrcore/multicore從solr源碼的example下複制multicore目錄到在solrhome下
3.2. 在tomcat 下的 webappss的solr包 web-inf目錄下修改web.xml的
<env-entry-name>solr/home</env-entry-name>
<env-entry-value> d:/test/solrcore/multicore</env-entry-value>
3.2. 修改solrhome目錄下的solr下的conf的solrconfig.xml檔案
<datadir>d:/test/solrcore/data/multicore</datadir>
3.3. 将core0和core1的索引檔案放到 d:/test/solrcore/data/multicore目錄下
3.4. 啟動solr控制台,可以看到二個core,安裝完成
4.embeddedsolrserver使用
4.1:singlecore使用:
package com.taobao.terminator.allen.solrjtest;
import org.apache.solr.client.solrj.solrquery;
import org.apache.solr.client.solrj.embedded.embeddedsolrserver;
import org.apache.solr.common.solrdocument;
import org.apache.solr.common.solrdocumentlist;
import org.apache.solr.common.solrinputdocument;
import org.apache.solr.core.corecontainer;
import org.junit.test;
public class embedsolrserversinglecoretest {
private static corecontainer.initializer initializer = null;
private static corecontainer corecontainer = null;
private static embeddedsolrserver server = null;
static {
try {
system.setproperty("solr.solr.home", "d://test//solrcore//core0");
initializer = new corecontainer.initializer();
corecontainer = initializer.initialize();
server = new embeddedsolrserver(corecontainer, "");
} catch (exception e) {
e.printstacktrace();
}
}
@test
public void query() throws exception {
solrquery q = new solrquery();
q.setquery("*:*");
q.setstart(0);
q.setrows(20);
solrdocumentlist list = server.query(q).getresults();
system.out.println(list.getnumfound());
} finally {
corecontainer.shutdown();
public void deletealldoc() throws exception {
server.deletebyquery("*:*");
server.commit();
query();
}
package com.taobao.terminator.allen.solrjtest;
import org.apache.solr.client.solrj.solrquery;
import org.apache.solr.client.solrj.embedded.embeddedsolrserver;
import org.apache.solr.common.solrdocument;
import org.apache.solr.common.solrdocumentlist;
import org.apache.solr.common.solrinputdocument;
import org.apache.solr.core.corecontainer;
import org.junit.test;
public class embedsolrserversinglecoretest {
private static corecontainer.initializer initializer = null;
private static corecontainer corecontainer = null;
private static embeddedsolrserver server = null;
static {
try {
system.setproperty("solr.solr.home", "d://test//solrcore//core0");
initializer = new corecontainer.initializer();
corecontainer = initializer.initialize();
server = new embeddedsolrserver(corecontainer, "");
} catch (exception e) {
e.printstacktrace();
}
@test
public void query() throws exception {
solrquery q = new solrquery();
q.setquery("*:*");
q.setstart(0);
q.setrows(20);
solrdocumentlist list = server.query(q).getresults();
system.out.println(list.getnumfound());
} finally {
corecontainer.shutdown();
public void deletealldoc() throws exception {
server.deletebyquery("*:*");
server.commit();
query();
4.2:multicore使用:
import java.io.file;
import org.apache.solr.core.corecontainer.initializer;
public class embedsolrservermulticoretest {
system.setproperty("solr.solr.home", "d://test//solrcore//core1");
public void query() throws exception {
file f = new file( "d:/test/solrcore/multicore", "solr.xml" );
corecontainer = new initializer().initialize();
corecontainer.load("d:/test/multicore", f);
corecontainer.setpersistent(true);
server = new embeddedsolrserver(corecontainer, "core1");
system.out.println(server.query(q).getresults().getnumfound());