应用场景

使用solr时,有时需要通过程序动态的加载配置文件,如修改了solrconfig.xml、schema.xml,需要通过重新加载core来达到重新加载配置文件的目的。

另外,针对索引分类,也需要动态的创建core.

代码示例

import java.io.File;
import java.io.IOException;import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.request.CoreAdminRequest;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.util.FileUtils;public class CoreAdminRequestDemo {public static final String SOLR_URL = "http://172.168.63.233:8983/solr";public static final String DEFAULT_CORE_NAME = "collection1";public static final String NEW_CORE_NAME = "demo";public static void main(String[] args) {try {// createCore(NEW_CORE_NAME);reloadCore(DEFAULT_CORE_NAME);} catch (IOException e) {e.printStackTrace();} catch (SolrServerException e) {e.printStackTrace();}}/*** * @param coreName* @throws SolrServerException* @throws IOException*/public static void reloadCore(String coreName) throws SolrServerException,IOException {// 连接solr服务器HttpSolrServer server = new HttpSolrServer(SOLR_URL);CoreAdminRequest.reloadCore(coreName, server);System.out.println("重新加载" + coreName + "成功");}/*** * @param coreName* @throws SolrServerException* @throws IOException*/public static void createCore(String coreName) throws SolrServerException,IOException {// 连接solr服务器HttpSolrServer server = new HttpSolrServer(SOLR_URL);// 获得solr.xml配置好的cores作为默认,获得默认core的路径NamedList<Object> list = CoreAdminRequest.getStatus(DEFAULT_CORE_NAME, server).getCoreStatus().get(DEFAULT_CORE_NAME);String path = (String) list.get("instanceDir");// 获得solrhome,也就是solr放置索引的主目录String solrHome = path.substring(0, path.indexOf(DEFAULT_CORE_NAME));// 建立新core所在文件夹File corePath = new File(solrHome + File.separator + NEW_CORE_NAME);if (!corePath.exists()) {corePath.mkdir();}// 建立新core下的conf文件夹File confPath = new File(corePath.getAbsolutePath() + File.separator+ "conf/");if (!confPath.exists()) {confPath.mkdir();}// 将默认core下conf里的solrconfig.xml和schema.xml拷贝到新core的conf下。这步是必须的// 因为新建的core solr会去其conf文件夹下找这两个文件,如果没有就会报错,新core则不会创建成功FileUtils.copyFile(new File(path + "conf/solrconfig.xml"), new File(confPath.getAbsolutePath() + File.separator+ "solrconfig.xml"));FileUtils.copyFile(new File(path + "conf/schema.xml"), new File(confPath.getAbsolutePath() + File.separator + "schema.xml"));// 创建新core,同时会把新core的信息添加到solr.xml里CoreAdminRequest.createCore(coreName, coreName, server);}
}

通过SolrJ 4.9管理Solr core相关推荐

  1. 通过Http管理Solr Core,实现索引的分类

    使用的版本为Solr 4.9 查看所有core的状态 使用样例 http://172.168.63.233:8983/solr/admin/cores?action=STATUS 查看某一个core的 ...

  2. 使用图形工具管理Server Core上的账号和组

    1.1 管理Server Core上的账号和组 由于Windows Serverr Core操作系统只有命令行界面,因此用户帐户和组的管理只能在命令行下实现.也可以在有图形界面的Windows Ser ...

  3. Hbase二级索引 Solr 异常 The most likely cause is another Solr server (or another solr core in this server)

    solr查询数据时候报错,去服务器查看该节点日志 {"responseHeader":{"status":503,"QTime":3,&qu ...

  4. SolrJ管理solr

    SolrJ管理Demo git地址:https://github.com/UserFengFeng/Solr-.git 1.SolrJ添加索引文档对象 solrj是访问Solr服务的java客户端,提 ...

  5. Solr线上环境 Error from server at http://ip:port/solr/core: Expected mime type application/oc

    在线上环境用关键字查找时报错. org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException: Error from ser ...

  6. Solr快速入门第七讲——使用SolrJ管理索引库

    什么是SolrJ? SolrJ是访问Solr服务的Java客户端,提供索引(这里指的就是创建索引.更新索引以及删除索引)和搜索(这里指的是查询索引)的请求方法,SolrJ通常嵌入在业务系统中,通过So ...

  7. java solr 实现_Java实现全文检索-Solr后台管理

    1.1. Solr后台管理 1.1.1. 管理界面 z.png 1.1.2. Dashboard 仪表盘,显示了该Solr实例开始启动运行的时间.版本.系统资源.jvm等信息. 1.1.3. Logg ...

  8. 具有外部Zookeeper集成并使用SOLRJ API访问数据的SOLR cloud 7.4集群配置

    SOLR是最流行且高度可扩展的搜索引擎之一,它基于分布式索引技术运行. Solr索引几乎可以基于任何类型的数据源(CSV数据或XML数据或从RDBMS数据库或标准文件系统中提取的数据)构建. 对于以R ...

  9. solr多core的处理

    有2中配置方式,一是从Solr Admin进行multi core的配置. 在Solr Admin控制台里面选择:Core Admin 选择Add Core 然后把你准备好的路径写到里面去. name ...

最新文章

  1. 在CISCO路由器上配置DHCP与DHCP中继
  2. 在 DW 中插入 Flash 的参数详解
  3. 安装VMware-workstation-full-14.1.1-7528167 附带下载地址
  4. 虚拟机上SourceInsight访问Linux系统的代码
  5. python基础学习[python编程从入门到实践读书笔记(连载二)]:外星人入侵项目
  6. mysql动态分区_MySQL动态创建分区
  7. 图解TCP四次握手断开连接
  8. tracepro应用实例详解_离心铸造工艺(实例)
  9. fastjson对json字符串JSONObject和JSONArray互相转换操作示例
  10. 3%7python_Centos7 Python2 升级到Python3
  11. cmake之交叉编译arm32/arm64(四)
  12. 图像局部特征(二十)--Textons
  13. Android arm64-v8a、armeabi-v7a、armeabi、x86详解
  14. win7录屏_专业电脑录屏方法有哪些?分享录屏靠谱方法!
  15. 基于matlab的gmsk,基于matlab的gmsk
  16. App测试之性能测试流畅度fps测试
  17. 那些年我们一起追寻过的考研(华科计算机)
  18. Oracle 12C 新特性之 恢复表
  19. C++ 0X学习 (1)
  20. Android 11.0 任务栏中清除掉播放器的进程,状态栏仍有音乐播放器状态问题的解决

热门文章

  1. 易企cms文章引用地址写法
  2. 给力开源,.Net开源地址大收集
  3. 深入理解js的执行机制
  4. vue-router路由基础
  5. 【排序】快速排序,C++实现
  6. 【EASYDOM系列教程】之 textContent 属性
  7. 东芝收购协议达成 富士通正式退出硬盘市场
  8. Linux网络基础1
  9. cocos2dx luajavaBridge 学习笔记
  10. C# 给PDF添加图片背景