2017-02-24 18 views
0

我可以通過運行以下命令來創建一個新的內核。創建新內核的命令與API之間有什麼區別?

$ ./bin/solr create -c newcore 

Setup new core instance directory: 
/Users/myname/Documents/solr/solr-5.2.1/server/solr/newcore 

Creating new core 'newcore' using command: 
http://localhost:8983/solr/admin/cores?action=CREATE&name=newcore&instanceDir=newcore 

{ 
    "responseHeader":{ 
    "status":0, 
    "QTime":916}, 
    "core":"newcore"} 

但是,我無法通過消息說的API創建新的內核。

$ curl -X GET 'http://localhost:8983/solr/admin/cores?action=CREATE&name=newcore2&instanceDir=newcore2' 
<?xml version="1.0" encoding="UTF-8"?> 
<response> 
<lst name="responseHeader"><int name="status">400</int><int name="QTime">361</int></lst><lst name="error"><str name="msg">Error CREATEing SolrCore 'newcore2': Unable to create core [newcore2] Caused by: Can't find resource 'solrconfig.xml' in classpath or '/Users/myname/Documents/solr/solr-5.2.1/server/solr/newcore2/conf'</str><int name="code">400</int></lst> 
</response> 

這兩種創建核心的方式有什麼不同?我明白爲什麼會發生這種情況的錯誤。命令的過程與API的過程不一樣嗎? 我正在使用solr-5.2.1。

回答

0

斌/ Solr的由服務器/ Solr的複製它創建命令白手起家與預先存在的配置目錄中的一個(新的核心/ configsets)。您可以通過運行bin/solr create_core -h命令來查看選項。默認情況下,您複製data_driven_schema_configs

當您使用API​​時,Solr會假定您的核心配置已存在於目標位置。

0

那麼你可以通過bin/solr,或通過cURL或Solr管理界面來創建核心/集合。他們基本上都是做同樣的事情。

你的第二個(cURL之一)不起作用的原因是因爲你在命令中有instanceDir=newcore2,並且告訴Solr使用來自現有核心newcore2的配置。所以如果這個核心和它的配置不存在,你會得到整個「無法找到資源」的錯誤。

我喜歡做的只是別名bin/solr文件'solr',這樣我就可以在終端中輸入Solr命令,不管我在哪個目錄中。我只要打開一個終端窗口,鍵入solr create -c potato那裏,我們去,新的核心。您不必將cd放入目錄中,或輸入一些大的粗略cURL命令或打開瀏覽器並轉至管理界面。當然斌/ Solr的可以做很多的東西,而不僅僅是核心創作

相關問題