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基础上美化阅读)

Apache Solrj EmbeddedSolrServer使用相关推荐

  1. org.apache.solr.client.solrj.impl.CloudSolrServer$RouteException: Exception writing document id xxxx

    有时候在很多问题找不到解决方案的时候,我们最好能够通过我们掌握的信息去分析下当前的线索,并根据线索合理的推断,而不是盲目地去寻找答案 [1] 当出现该问题的时候,首先分析下solr.log日志打印内容 ...

  2. 淘淘商城第66讲——将搜索功能切换到集群版Solr时,我就不信你没遇到过这个异常:org.apache.solr.client.solrj.SolrServerException ···

    问题描述 今天我在将搜索功能切换到集群版Solr,准备向索引库中导入商品数据时,碰到了一个异常.真的是一天天的都会碰到异常,太闹心了

  3. 淘淘商城第50讲——导入商品数据到索引库时,报错:org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException

    问题描述 昨天碰到了一个问题,真的是把快我搞死了,导致我代码写下去的勇气都没有了,最后大爷我干脆不写了,我躺着睡觉还不行吗

  4. [ solr入门 ] - 利用solrJ进行检索

    转自: http://www.cnblogs.com/huangfox/archive/2012/02/13/2348949.html solrJ可以看成是solr的java版客户端,提供基本的索引维 ...

  5. solrj html过滤,使用SolrJ

    使用SolrJ SolrJ是一个使Java应用程序可以轻松与Solr对话的API.SolrJ隐藏了许多连接到Solr的细节,并允许您的应用程序通过简单的高级方法与Solr进行交互. SolrJ的中心是 ...

  6. EmbeddedSolrServer的使用与solor6.3.0的使用

    1.    到solr官网下载对应版本的solr: https://lucene.apache.org/solr/ 我下载的是:6.3.0版本(需要JDK8),solr默认集成了jetty容器,而且在 ...

  7. 通过SolrJ 4.9管理Solr core

    应用场景 使用solr时,有时需要通过程序动态的加载配置文件,如修改了solrconfig.xml.schema.xml,需要通过重新加载core来达到重新加载配置文件的目的. 另外,针对索引分类,也 ...

  8. SolrJ查询Solr数据

    2019独角兽企业重金招聘Python工程师标准>>> 1.首先,我比较懒.我把 apache-solr-3.6.1/dist 目录下所有的包导入到了工程中,除了war包. 2.下面 ...

  9. Apache Solr入门教程

    转自:http://blog.csdn.net/u011936655/article/details/51960005 Apache Solr入门教程(初学者之旅) 写在前面:本文涉及solr入门的各 ...

最新文章

  1. h5有缓存css,taro H5配置 cdn css js 缓存 hash 配置
  2. 人工智能加“医真云”,每年让5700万人告别误诊
  3. 使用第三方工具覆写Object中方法
  4. mysql数据库分表备份脚本_MySQL分库分表备份脚本
  5. SAP连接外部ORACLE数据库
  6. 【今日CS 视觉论文速览】8 Jan 2019
  7. Android:最新基于adt-bundle-windows-x86的android开发环境搭建
  8. java基础知识总结(4)
  9. 洛谷 P1725 简单DP单调队列优化
  10. git还原所有更改,拉取远程分支到本地
  11. 主管已不安排代码工作,自己要明白问题所在
  12. uniapp兼容微信小程序和支付宝小程序遇见的坑
  13. php银行学生助学贷款管理系统
  14. ctf————逆向新手题8(logmein)WP
  15. 偶然在github开源项目中发现了.travis.yml这货
  16. scala中的Unit
  17. 阿里云ECS上CentOS关闭阿里云盾
  18. 威联通服务器无限重启,威联通NAS,时不时的读盘,无法休眠的问题
  19. 一个项目的经验教训:关于打乱和拆分数据
  20. pictureBox sizemode=zoom时图片像素坐标

热门文章

  1. checksum命令 linux,Windows相当于linux cksum命令
  2. php启动端口修改,PHP_启动服务端口报错
  3. java 各组件单击总数_java 获取面板上有多少个组件
  4. 利用EfficientNet-B5从眼底摄影检测糖尿病视网膜病变的严重程度
  5. java exception信息_可能通过Java Exceptions暴露敏感信息?
  6. python 串行线程终止后还会执行下一个吗_多线程笔记
  7. 计算机视觉(三)——人脸识别
  8. 爱奇艺NLP:BiLSTM_CRF的关键词自动抽取
  9. 机器学习算法-详细白板推导系列视频
  10. python机器学习:朴素贝叶斯分类算法