solr配置与solrj EmbeddedSolrServer使用篇

简介:  Solr的配置网上讲的很多,但是实施总是遇到困难,现总结如下1.从官网下载solr core的源码包,将solrwar包放到tomcat的webapps文件夹下,其它web容器亦然.    运行tomcat ,解压出来solr的文件夹.2.Single core配置:以solr自带例子做讲解2.1.新建solrhome目录:d:/test/solrcore/singlecore ,从
 

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使用:

  1. package com.taobao.terminator.allen.SolrjTest;  
  2. import org.apache.solr.client.solrj.SolrQuery;  
  3. import org.apache.solr.client.solrj.embedded.EmbeddedSolrServer;  
  4. import org.apache.solr.common.SolrDocument;  
  5. import org.apache.solr.common.SolrDocumentList;  
  6. import org.apache.solr.common.SolrInputDocument;  
  7. import org.apache.solr.core.CoreContainer;  
  8. import org.junit.Test;  
  9. public class EmbedSolrServerSingleCoreTest {  
  10.     private static CoreContainer.Initializer initializer = null;  
  11.     private static CoreContainer coreContainer = null;  
  12.     private static EmbeddedSolrServer server = null;  
  13.     static {  
  14.         try {  
  15.             System.setProperty("solr.solr.home""D://test//solrcore//core0");  
  16.             initializer = new CoreContainer.Initializer();  
  17.             coreContainer = initializer.initialize();  
  18.             server = new EmbeddedSolrServer(coreContainer, "");  
  19.         } catch (Exception e) {  
  20.             e.printStackTrace();  
  21.         }  
  22.     }  
  23.     @Test  
  24.     public void query() throws Exception {  
  25.         try {  
  26.             SolrQuery q = new SolrQuery();  
  27.             q.setQuery("*:*");  
  28.             q.setStart(0);  
  29.             q.setRows(20);  
  30.             SolrDocumentList list = server.query(q).getResults();  
  31.             System.out.println(list.getNumFound());  
  32.               
  33.               
  34.         } catch (Exception e) {  
  35.             e.printStackTrace();  
  36.         } finally {  
  37.             coreContainer.shutdown();  
  38.         }  
  39.     }  
  40.     @Test  
  41.     public void deleteAllDoc() throws Exception {  
  42.         try {  
  43.             server.deleteByQuery("*:*");  
  44.             server.commit();  
  45.             query();  
  46.         } catch (Exception e) {  
  47.             e.printStackTrace();  
  48.         } finally {  
  49.             coreContainer.shutdown();  
  50.         }  
  51.     }  
  52.       
  53. }  
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使用:

                

  1. package com.taobao.terminator.allen.SolrjTest;  
  2. import java.io.File;  
  3. import org.apache.solr.client.solrj.SolrQuery;  
  4. import org.apache.solr.client.solrj.embedded.EmbeddedSolrServer;  
  5. import org.apache.solr.core.CoreContainer;  
  6. import org.apache.solr.core.CoreContainer.Initializer;  
  7. public class EmbedSolrServerMultiCoreTest {  
  8.     private static CoreContainer.Initializer initializer = null;  
  9.     private static CoreContainer coreContainer = null;  
  10.     private static EmbeddedSolrServer server = null;  
  11.     static {  
  12.         try {  
  13.             System.setProperty("solr.solr.home""D://test//solrcore//core1");  
  14.             initializer = new CoreContainer.Initializer();  
  15.             coreContainer = initializer.initialize();  
  16.             server = new EmbeddedSolrServer(coreContainer, "");  
  17.         } catch (Exception e) {  
  18.             e.printStackTrace();  
  19.         }  
  20.     }  
  21.       
  22.     public  void query() throws Exception {  
  23.         try {  
  24.             File f = new File( "D:/test/solrcore/multicore""solr.xml" );  
  25.             coreContainer = new Initializer().initialize();  
  26.             coreContainer.load("D:/test/multicore", f);  
  27.             coreContainer.setPersistent(true);  
  28.               
  29.             server = new EmbeddedSolrServer(coreContainer, "core1");  
  30.             SolrQuery q = new SolrQuery();  
  31.             q.setQuery("*:*");  
  32.               
  33.             System.out.println(server.query(q).getResults().getNumFound());  
  34.         } catch (Exception e) {  
  35.             e.printStackTrace();  
  36.         } finally {  
  37.             coreContainer.shutdown();  
  38.         }  
  39.     }  
  40.       
  41. }  

相关文章
|
6月前
|
Oracle 关系型数据库 MySQL
25对Solr的思考
25对Solr的思考
21 0
|
自然语言处理 Java 关系型数据库
Solr
Solr是一个全文检索服务器
569 0
|
自然语言处理 Java Apache
|
Java Perl 自然语言处理
|
Java 索引 存储
通过solrj对solr进行开发
应用场景 当安装部署完solr之后,我们可以通过solrj来连接solr,进行新建,删除索引等等操作,达到全文检索的效果。
1131 0
|
搜索推荐 Java UED
|
Java 应用服务中间件 关系型数据库
|
Java Maven 索引
solr6.6初探之solrj
一. solrj简介:   solrj可以使Java应用程序很方便的访问与操作solr。solrj有几个核心类,分别为:1.SolrClient 2.SolrRequests 3.SolrQuerys 4.
1664 0
|
数据库
solr6.6初探之配置篇
一.solr的简介 1) solr是企业级应用的全文检索项目,它是基于Apache Lucence搜索引擎开发出来的用于搜索的应用工程 2) solr最新版本6.6 下载地址:下载地址   二 启动与配置solr 1) 下载并解压文件后会得到以下界面: 我们重点关注以下几个文件夹: 1.bin 放置solr的相关执行脚本,在solr5.0版本以前,部署过程相当麻烦,好在Apache帮我们简化了相关solr的配置 2.example :这个文件夹里放置的一些solr应用实例。
1227 0