Abbiamo una situazione in cui dobbiamo forse creare più istanze di Solr/Tomcat in esecuzione su porte diverse su una singola macchina o su diverse macchine. Verso questo mi chiedevo se è possibile specificare la variabile dataDir (all'interno di solrconfig.xml) usando una variabile di ambiente per esempio in questo modo: <dataDir>${envvar}/path/to/index</dataDir>
.È possibile utilizzare le variabili di ambiente all'interno di solrconfig.xml per la variabile dataDir?
risposta
Come sto lavorando su un setup simile, avevo bisogno anche di questo. Non penso che sia una buona pratica usare le variabili ENV per questo. Probabilmente stai meglio usando l'installazione multicore o usa un file di proprietà in solr.xml.
es.
<core name="core_1" instanceDir="core_1" properties="core1.properties" />
e poi nelle vostre core1.properties:
config.datadir=/datadir1
e quindi utilizzare che nel vostro solrconfig.xml:
<dataDir>${config.datadir}</dataDir>
Cheers,
Patrick
Può essere utilizzato anche in data-config.xml? –
Vai a multi-core.
Si può dire a Solr di distribuire una directory indice particolare come nucleo. Ad esempio, per distribuire un indice Solr su path_to_instance_directory
su http://localhost:8983/solr/coreX
, si dovrebbe fare:
http://localhost:8983/solr/admin/cores?action=CREATE&name=coreX&instanceDir=path_to_instance_directory&config=config_file_name.xml&schema=schem_file_name.xml&dataDir=data
Si può dire Solr per creare, caricare, scambiare due core in esecuzione, scambiare un nucleo in esecuzione con un nucleo inattivo ecc
Sì, puoi farlo, ma tu È necessario fare un salto attraverso un paio di cerchi per impostare questo using system properties passed to the JVM quando lo si avvia.
ovunque si desidera la vostra variabile d'ambiente per lavorare nei file di configurazione, mettere la variabile in questo modo:
${VAR}
Poi, quando si avvia il JVM, passare la variabile facendo:
java -DVAR=$your-system-variable
Quindi, per rendere questo concreto, ecco quello che facciamo:
java -DINSTALL_ROOT=$INSTALL_ROOT -jar -server start.jar
E la nostra configurazione ha s Qualcosa del genere:
<filter class="solr.SynonymFilterFactory" synonyms=${INSTALL_ROOT}/Solr/conf/synonyms.txt />
Funziona come un fascino.
Come spiegato sul wiki.apache.org, è possibile utilizzare la sostituzione proprietà di sistema in solrconfig.xml
come di seguito:
<dataDir>${data.dir}</dataDir>
Quindi è possibile specificare i valori in un file delle proprietà:
#solrcore.properties
data.dir=/data/solrindex
Un altro modo è per dettare la directory dei dati durante il runtime Solr in questo modo:
java -Dsolr.data.dir=/data/dir -jar start.jar
e in file XML utilizzare la seguente sintassi:
<dataDir>${solr.data.dir:./solr/data}</dataDir>
penso che il metodo migliore è quello di definire solr.xml
all'interno solr.home
, ad esempio:
<solr persistent="true" sharedLib="lib">
<cores adminPath="/admin/cores">
<core name="core0" instanceDir="core0" dataDir="/var/lib/solr/core0" />
<core name="core1" instanceDir="core1" dataDir="/var/lib/solr/core1" />
</cores>
</solr>
Nota: I don Penso che tu possa usare qualsiasi variabile esterna qui.
Infine utilizzando il file proprietà di sistema JVM (ad esempio solr.xml
) in conf/Catalina/localhost
, ad esempio:
<Context docBase="webapps/solr.war" crossContext="true">
<Environment name="solr/home" type="java.lang.String" value="/opt/solr/ads_solr" override="true" />
<Environment name="solr/data/dir" type="java.lang.String" value="/var/lib/solr" override="true" />
</Context>
dove solr/home
avrebbe funzionato, tuttavia solr/data/dir
won't work senza patch tuo Solr.
See: tomcat_solr.xml.erb
- 1. È possibile utilizzare le variabili di ambiente in php.ini?
- 2. Utilizzare le variabili di ambiente in CMD
- 3. Reagire: utilizzare le variabili di ambiente
- 4. è possibile utilizzare le variabili di ambiente nel file di configurazione per fluentd
- 5. Funzioni di Azure: è possibile utilizzare le variabili di ambiente in function.json?
- 6. È possibile utilizzare le variabili di ambiente in un commento CFLAGS cgo?
- 7. msbuild, come impostare le variabili di ambiente?
- 8. Aggiorna le variabili di ambiente per la soluzione VS aperta
- 9. Per che cosa è la variabile di ambiente XDG_SESSION_COOKIE?
- 10. Application.yml supporta le variabili di ambiente?
- 11. Imposta le variabili di ambiente sull'Engine motore
- 12. Come utilizzare le variabili di ambiente in un file .classpath di Eclipse?
- 13. Visualizza le variabili di ambiente di Windows in Cygwin
- 14. build TFS 2015: è possibile utilizzare le variabili nei mapping di repository?
- 15. Variabili di ambiente nei collegamenti simbolici
- 16. Variabili di ambiente Javascript
- 17. Qualcuno ha provato a utilizzare la variabile di ambiente UV_THREADPOOL_SIZE?
- 18. È possibile passare variabili di ambiente a Ember cli sass durante la compilazione?
- 19. Script di shell per impostare le variabili di ambiente
- 20. Laravel 5.2 ottiene le variabili di ambiente del sistema Linux
- 21. Controllo delle variabili di ambiente
- 22. Variabili di ambiente monodiro
- 23. Come possiamo utilizzare le variabili di ambiente in un file di configurazione di Jekyll?
- 24. Come utilizzare la variabile di ambiente Docker nell'array ENTRYPOINT?
- 25. Caricare la variabile di ambiente prima di eseguire
- 26. è possibile utilizzare le variabili nel comando ssh remoto?
- 27. Quali sono le mie variabili di ambiente?
- 28. È possibile utilizzare il valore della variabile jsp per inizializzare la variabile JQUERY?
- 29. Come impostare le variabili di ambiente Linux con Ansible
- 30. Ottieni le variabili di ambiente utilizzando il codice C
Non sono sicuro se è possibile utilizzare le variabili di ambiente, ma le proprietà di sistema può essere utilizzato come spiegato [qui] (http://wiki.apache.org/solr/SolrConfigXml#System_property_substitution). – nikhil500