今日搜索业务上有个新需求,希望能够满足新数据库表的搜索功能,该表结构和之前线上运营的表结构不同,最终域也不可能一致,再者使用用户群也不同,所以只能考虑有独立的新搜索服务。我们知道,为了实现同一个solr实例可以满足多种搜索索引并存,solr早在1.3版本就建立了多核(MultiCore)的机制。现在我使用的是4.10.0版本的solr,已经相当成熟,早已实现core的配置文件的动态修改和加载接口,也有了在线新增core的功能。为了避免遗忘,特此记录“如何快速新建core”。
1. 创建core路径和配置文件
进入线上core运行的solr_home路径,该路径在web.xml中的<env-entry>配置,如下
<env-entry>
<description>配置solr/home</description>
<env-entry-name>solr/home</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>/usr/local/mysearch/mytest</env-entry-value>
</env-entry>
在该路径下创建一个新的core,所需文件和层级如下
test_core |-- conf |-- schema.xml |