首先了解一下core都包含哪些内容:
- 打开solr-home文件夹,进入任意一个core,会看到如下内容:
- conf里面是一些配置,比如schema.xml和solrconfig.xml等文件; data里面是创建的索引和日志文件;core.properties文件里面包含core的名字,字段设置文件夹得名字,core的配置文件的名字,data文件夹的名字。core.properties里面的内容如图:
如何创建core
在solr-home文件夹下创建一个文件夹,将其他core里面的conf文件夹直接复制到刚刚创建的文件夹里面,进入创建的文件将爱,在里面建立一个core.properties,在里面写入你创建的core的名字,其他内容不用写,因为系统会有默认值,直接按照默认就可以。创建完成后如下图(我的core的名字是collection1):
然后启动solr,输入http://127.0.0.1:8983/solr,你就会看到你创建的的core.
(用这种方法创建core后,必须重启solr才可以)
用代码动态创建core
其实就是用代码完成上述创建过程,但是这种方法可以不用重启solr就可以,不过需要用代码请求一下。
下面粘一段Python调用solr的代码:
#-*-coding:UTF-8-*-
import os
import urllib
import shutil
src_file="E:/solr-4.10.3/example/solr/collection1/conf"
#需要将已经创建好的core的conf复制出来
core_dir="E:/solr-4.10.3/example/solr/"
#这里就是你创建的core的位置
url_create="http://127.0.0.1:8983/solr/admin/cores?action=CREATE&name="
#此处的url_create就是为了不用重新启动solr而需要请求的url
def create_core(core_name,core_path):
"""
函数参数:core_name为要创建的核的名字
core_path为要创建的核的路径
函数功能:创建一个核,无返回值
"""
os.makedirs(core_path+'/'+core_name)
core_properties_path=core_path+'/'+core_name+"/core.properties"
f=open(core_properties_path, 'w')
f.write('name='+core_name)
f.close()
shutil.copytree(src_file, core_dir+core_name+"/conf")
url = url_create+core_name+"&instanceDir="+core_dir+core_name
urllib.urlopen(url)
core_name=raw_input()
core_path=raw_input()
create_core(corename, core_path)
在此之前你已经启动solr,那么现在刷新一下,你就会看到刚刚创建的core。