2013-07-25 16 views
6

Sto cercando di configurare un server solr multi core per la nostra applicazione web, ma ho problemi a creare un nuovo core attraverso il servizio coreadmin.Solr (4.4+) posizione solrconfig.xml durante la creazione di core

sto usando Solr-4.4 a causa 4.3 corse in problemi persistenti i nuclei in solr.xml (datadir non era conservata) quindi sto usando la nuova configurazione Solr.xml 4.4 and beyond

mio solr.xml attualmente si presenta come:

<solr> 
    <str name="coreRootDirectory">default-instance/cores/</str> 
</solr> 

solrconfig.xml si trova a (solrhome) /default-instance/conf/solrconfig.xml

Quando si cerca di creare un nucleo con l'url

http:/example.org/solr/admin/cores?action=CREATE&name=test-name&schema=schema-test.xml&loadOnStartup=false 

mi dà l'errore:

Error CREATEing SolrCore 'test-name': Unable to create core: test-name Caused by: Can't find resource 'solrconfig.xml' in classpath or 'default-instance/cores/test-name/conf/', cwd=/var/lib/tomcat7

Il seguente sembra funzionare:

http:/example.org/solr/admin/cores?action=CREATE&name=test-name&schema=schema-test.xml&loadOnStartup=false&config=/absolute/file/path/to/solrconfig.xml 

Il problema è questo sembra funzionare solo con un percorso assoluto (o, eventualmente, un percorso relativo da/var/lib/tomcat7) che non è una soluzione praticabile.

Quello che sto cercando è un modo per posizionare solrconfig.xml in modo che possa essere usato per creare nuovi core con quella configurazione (o un modo per creare quei core con la posizione corrente).

Più o meno lo stesso saranno necessari per gli schemi

risposta

2

Ho avuto lo stesso problema: solrconfig.xml non era nel classpath. L'ho risolto copiando i miei modelli di file di configurazione nel classpath.

Quindi ho dato un'occhiata a http://localhost:8983/solr/#/~java-properties per vedere la definizione di classpath solrs e quindi ho copiato il modello solrconfig.xml e schema.xml nella cartella C:\servers\solr-4.4.0\example\resources. Inoltre ho copiato tutte le cose di stopword ...

Questa soluzione non è pienamente soddisfacente, ma funziona. Anche l'aggiunta di un altro percorso al classpath dovrebbe funzionare. Sono un po 'stupito che nessuna configurazione di default per i nuovi core può essere dichiarata all'interno solr.xml

4

Nel mio caso ho approfittato della funzione Core Discovery in 4.4+, invece di creare il nucleo utilizzando l'interfaccia di gestione web.

Ciò ha comportato semplicemente la copia della cartella di esempio collection1 dalla directory examples (che di solito uso come punto di partenza).

Quindi ho dovuto assicurarmi che ci sia core.properties nella radice del mio nuovo core con name=<new core name> all'interno. Solr ha rilevato automaticamente il nuovo core e mi ha permesso di usarlo senza alcun problema.

Questo ha evitato il problema di dover copiare solrconfig.xml e schema.xml in qualsiasi posizione speciale.

+0

è possibile farlo anche su SolrCloud? o dobbiamo aggiungere il nuovo core agli altri nodi nel cloud uno per uno? – stephanruhl

+0

Non so. Da allora ho iniziato a utilizzare ElasticSearch. – mydoghasworms

+0

@mydoghasworms Ho usato questo approccio e ha funzionato per me .. grazie. – Joe

2

Raccomando i nuovi set di configurazione per questo caso d'uso.

Se si posiziona schema.xml e solrconfig.xml (e altri file di configurazione, come stopword ecc) in una directory $SOLR_HOME/configsets/myConfig/conf, è possibile creare un nuovo core con questa configurazione chiamando:

http://solr/admin/cores?action=CREATE&name=mycore&instanceDir=my_instance&configSet=myConfig

Vedi https://cwiki.apache.org/confluence/display/solr/Config+Sets

Ma non sono disponibili fino Solr 4.8, vedere https://issues.apache.org/jira/browse/SOLR-4478

10

Questo ha funzionato. Riceve un bel riga di comando ed era visualizzabile nella console di amministrazione:

solr creare -c (nome per core o raccolta)

Vedere README.txt per maggiori informazioni.

+1

Questo è disponibile solo su Solr 5 – Evgeny

+0

Il comando CLI ha funzionato anche per me. Grazie! –

+1

dovremmo essere consapevoli anche che il comando dovrebbe essere eseguito come utente 'solr' – MhdSyrwan

Problemi correlati