solr安装

8 篇文章 0 订阅

转帖地址:http://www.cnblogs.com/ibook360/archive/2011/11/29/2267451.html

Apache Solrj EmbeddedSolrServer使用

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>
<env-entry-type>java.lang.String</env-entry-type>

  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 {  
        try {  
            SolrQuery q = new SolrQuery();  
            q.setQuery("*:*");  
            q.setStart(0);  
            q.setRows(20);  
            SolrDocumentList list = server.query(q).getResults();  
            System.out.println(list.getNumFound());  
              
              
        } catch (Exception e) {  
            e.printStackTrace();  
        } finally {  
            coreContainer.shutdown();  
        }  
    }  
    @Test  
    public void deleteAllDoc() throws Exception {  
        try {  
            server.deleteByQuery("*:*");  
            server.commit();  
            query();  
        } catch (Exception e) {  
            e.printStackTrace();  
        } finally {  
            coreContainer.shutdown();  
        }  
    }  
      
}  
复制代码

 

  4.2.multiCore使用:

复制代码
package com.taobao.terminator.allen.SolrjTest;  
import java.io.File;  
import org.apache.solr.client.solrj.SolrQuery;  
import org.apache.solr.client.solrj.embedded.EmbeddedSolrServer;  
import org.apache.solr.core.CoreContainer;  
import org.apache.solr.core.CoreContainer.Initializer;  
public class EmbedSolrServerMultiCoreTest {  
    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//core1");  
            initializer = new CoreContainer.Initializer();  
            coreContainer = initializer.initialize();  
            server = new EmbeddedSolrServer(coreContainer, "");  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }  
      
    public  void query() throws Exception {  
        try {  
            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");  
            SolrQuery q = new SolrQuery();  
            q.setQuery("*:*");  
              
            System.out.println(server.query(q).getResults().getNumFound());  
        } catch (Exception e) {  
            e.printStackTrace();  
        } finally {  
            coreContainer.shutdown();  
        }  
    }  
      
}  
复制代码

 

(来源:在http://blog.csdn.net/flyingpig4/article/details/6366414基础上美化阅读)



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值