Mamy sytuację, w której musimy utworzyć wiele instancji Solr/Tomcat działających na różnych portach na jednym komputerze lub kilku różnych maszynach. W tym kierunku zastanawiałem się, czy możliwe jest określenie zmiennej dataDir (w obrębie solrconfig.xml) przy użyciu zmiennej środowiskowej, na przykład: <dataDir>${envvar}/path/to/index</dataDir>
.Czy można używać zmiennych środowiskowych w pliku solrconfig.xml dla zmiennej dataDir?
Odpowiedz
Ponieważ pracuję nad podobną konfiguracją, też tego potrzebowałem. Nie sądzę, że dobrą praktyką jest używanie do tego zmiennych ENV. Prawdopodobnie lepiej jest użyć konfiguracji wielordzeniowej lub użyć pliku właściwości w pliku solr.xml.
np.
<core name="core_1" instanceDir="core_1" properties="core1.properties" />
a następnie w swoim core1.properties:
config.datadir=/datadir1
a następnie użyć jej w swojej solrconfig.xml:
<dataDir>${config.datadir}</dataDir>
Wiwaty,
Patrick
Czy można go również użyć w pliku data-config.xml? –
Idź multi-core.
Możesz powiedzieć Solr, aby wdrożył określony katalog indeksu jako rdzeń. Na przykład, aby wdrożyć indeks Solr na path_to_instance_directory
na http://localhost:8983/solr/coreX
, zrobiłbyś:
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
Można powiedzieć Solr tworzenie, obciążenia, zamienić dwa działające rdzenie, zamienić uruchomioną rdzeń z nieaktywnym rdzenia itp
Tak, możesz to zrobić, ale y Musisz przeskoczyć kilka obręczy, aby ustawić to using system properties passed to the JVM po uruchomieniu.
Gdziekolwiek chcesz, aby zmienna pracować w plikach konfiguracyjnych, umieścić zmienną takiego:
${VAR}
Następnie, po uruchomieniu JVM, przekazać ją zmienną wykonując:
java -DVAR=$your-system-variable
Tak, aby ten beton, oto co robimy:
java -DINSTALL_ROOT=$INSTALL_ROOT -jar -server start.jar
A nasz config ma s coś podobnego:
<filter class="solr.SynonymFilterFactory" synonyms=${INSTALL_ROOT}/Solr/conf/synonyms.txt />
Działa jak urok.
Jak wyjaśniono na wiki.apache.org, można użyć systemu podstawienie nieruchomości w solrconfig.xml
jak poniżej:
<dataDir>${data.dir}</dataDir>
Następnie można określić wartości w pliku właściwości:
#solrcore.properties
data.dir=/data/solrindex
Innym sposobem jest dyktowanie katalogu danych w czasie wykonywania Solr w następujący sposób:
java -Dsolr.data.dir=/data/dir -jar start.jar
w pliku XML, należy użyć następującej składni:
<dataDir>${solr.data.dir:./solr/data}</dataDir>
Myślę, że lepszą metodą jest określenie solr.xml
w swoim solr.home
, np:
<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>
Uwaga: I don Myślę, że możesz tu użyć dowolnych zmiennych zewnętrznych.
Wreszcie używając JVM pliku właściwości systemu (np solr.xml
) w conf/Catalina/localhost
, na przykład:
<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>
gdzie solr/home
będzie działać, jednak solr/data/dir
won't work bez łatania swoją Solr.
Patrz: tomcat_solr.xml.erb
- 1. można używać zmiennych środowiskowych w pliku konfiguracyjnym dla fluentd
- 2. Czy można używać zmiennych środowiskowych w skryptach instalacyjnych Inno?
- 3. Jak używać zmiennych środowiskowych w pliku Eclipse .classpath?
- 4. nie można załadować pliku solrconfig.xml
- 5. Jak skonfigurować Mercurial, aby używać zmiennych środowiskowych w pliku mercurial.ini?
- 6. Ustawianie zmiennych środowiskowych dla skryptu w lokalnej zmiennej funkcji bash
- 7. Kiedy używać zmiennych środowiskowych a właściwości systemu?
- 8. Nie można pobrać zmiennych środowiskowych w pliku ustawień Django
- 9. Ustawianie zmiennych środowiskowych programowo
- 10. VS2010: Jak używać zmiennych środowiskowych w Post-Budowanie
- 11. Klucze SSH w zmiennych środowiskowych
- 12. Odwoływanie się do zmiennych środowiskowych w web.xml
- 13. Drukowanie wszystkich zmiennych środowiskowych w C/C++
- 14. Jak uzyskać wartość zmiennych środowiskowych?
- 15. Jak używać zmiennych środowiskowych w funkcji groovy przy użyciu Jenkinsfile
- 16. Czy mogę używać zmiennych dla selektorów?
- 17. Ustawianie zmiennych środowiskowych w .screenrc
- 18. Skonfiguruj Dancer ze zmiennych środowiskowych?
- 19. Python: Eksportowanie zmiennych środowiskowych w podprocesie.Popen (..)
- 20. Jak używać zmiennych środowiskowych w skrypcie Jenkins Pythona
- 21. Używanie zmiennych środowiskowych systemu w sql skrypt
- 22. Ustawianie zmiennych środowiskowych dla wszystkich testów JUnit w Eclipse
- 23. Jak używać zmiennych środowiskowych w sekcji konfiguracyjnej Supervisorda?
- 24. Czy mogę odnieść się do zmiennych środowiskowych w szablonach przejść?
- 25. czy można używać zmiennych w zdalnych komendach ssh?
- 26. Ustawianie zmiennych środowiskowych na GCE (kubernetes)
- 27. Budynki TFS 2015: Czy można używać zmiennych w mapowaniach repozytorium?
- 28. Jak drukować/echo zmiennych środowiskowych?
- 29. Uzyskiwanie dostępu do zmiennych środowiskowych w AWS Beanstalk ebextensions
- 30. Linux Mint - stałe dodawanie zmiennych środowiskowych
Nie jestem pewien, czy można używać zmiennych środowiskowych, ale właściwości System może być używany jak wyjaśniono [tutaj] (http://wiki.apache.org/solr/SolrConfigXml#System_property_substitution). – nikhil500