在solr的开发包里面的示例文件夹里面,有multicore(多核)这个例子。
把其中的一个core文件夹复制粘贴到我们的solr工作空间目录中就可以了。这个工作空间目录就是我们前面在apache-tomcat-6.0.43\webapps\solr\WEB-INF的web.xml文件里面设置的信息,如下:
我这里拷贝core1,放到这个目录下,如下图:
现在看看core1下面都有什么,这时候里面就一个conf文件夹,什么都没有。在core1/conf里面也就2个xml文件,分别是schema.xml、solrconfig.xml;schema.xml定义了core1的field类型和名称,field就像数据库的字段,field的类型就像数据库的字段类型,field的名称就像数据库的字段名称;
solrconfig.xml描述了core1管理配置,比如指定索引文件的存储位置、日志文件的存储位置、使用什么管理器等。启动solr服务,进入solr的管理界面,选中core Admin栏,如下图:
点击Add Core按钮,在弹出的界面中把name和instanceDir的值改为core1,也就是我们上面拷贝到工作目录下的那个core1文件夹的名称,点击那个蓝色的Add Core按钮。
此时,就成功添加了一个core了。
回到工作目录下的core1文件夹,发现多出一个data文件夹和一个core.properties文件。这2个东西就是我们在solr的管理页面操作的时候solr自己给我们创建的。我们为什么在管理页面能够看到core0,solr服务如何知道$SOLR_HOME$下面有个core0,其实还是core.properties在发挥作用。其实我们可以通过手动写core.properties来完成新建core。
================================================================
手动新建core
在工作目录下新建li_core文件夹,然后在li_core文件夹下面再建立一个conf文件夹,把示例core1里面的conf下面的2个xml文件拷贝到新建的li_core/conf文件夹下面;最后在li_core下面新建一个core.properties文件配置如下:
重启solr服务,便在solr的管理页面看到我们新建的core2了。注意一点:core的名称和core的文件夹可以不一样,但是最好定义为一样的,方便管理。像上面手动建立的core2,其实core文件夹名称是li_core,这样的设计对维护很不友好,最好把文件夹名称改为core2或者把core的名称改为li_core。
后记:
手动新建core的时候,我把conf文件夹写成了config文件夹,浏览solr网页的时候日志报出了错误,没有成功加载配置文件:
这就有点奇怪了!我进入这个solrconfig.xml文件里面,把框起来这两行都改成自己的core名称了,因为从示例那里拷贝来是显示core1的。
可是重启后是一样的错误,再改为li_core,还是一样的错误。最后还是在tomcat那里查看错误日志,那上面显示的更明白,我也就知道我把文件夹名称写错了。
最后发现:
<dataDir>${solr.core0.data.dir:}</dataDir>
这句改不改都对是否能加载新的core没有任何影响!