dataDir変数にsolrconfig.xml内の環境変数を使用することは可能ですか?

私たちは、単一のマシンまたは複数の異なるマシンの異なるポート上で動作するSolr/Tomcatの複数のインスタンスを作成する必要がある状況があります。これを行うために、環境変数を使用してdataDir変数(solrconfig.xml内で)を指定できるかどうかを考えてみました。たとえば、 $ {envvar}/path/to/index コード>。

11
環境変数を使用できるかどうかは不明ですが、説明されているようにシステムプロパティを使用できます。ここ
追加された 著者 nikhil500,

4 答え

私も同様のセットアップに取り組んでいるので、これも必要でした。このためにENV変数を使用するのは良い方法ではないと思います。マルチコアの設定を使用する方が良いでしょうし、solr.xmlのプロパティファイルを使用するほうが良いでしょう。

例えば。


あなたのcore1.propertiesで次に:

config.datadir=/datadir1

solrconfig.xmlでそれを使用します。

${config.datadir}

乾杯、

パトリック

7
追加された
data-config.xmlでも使えますか?
追加された 著者 Basil Musa,

はい、これを行うことができますが、これを設定するには、いくつかの作業が必要です。システムを使用する開始時にJVMに渡されたプロパティを返します。

環境変数を設定ファイルで動作させたい場合は、次のように変数を設定します。

${VAR}

次に、JVMを起動するときに、次のようにして変数を渡します。

java -DVAR=$your-system-variable

ですから、これを具体的にするために、ここで私たちは何をしますか:

java -DINSTALL_ROOT=$INSTALL_ROOT -jar -server start.jar

私たちの設定には次のようなものがあります:


魅力のように動作します。

4
追加された

マルチコアに進んでください。

特定のインデックスディレクトリをコアとして展開するようにSolrに指示できます。たとえば、 http:// localhost:8983/solr/coreX path_to_instance_directory にSolrインデックスをデプロイするには、

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

Solrに、実行中の2つのコアの作成、ロード、スワップ、実行中のコアと非アクティブなコアのスワップなどを伝えることができます。

2
追加された

wiki.apache.org で説明されているように、でシステムプロパティ置換を使うことができます> solrconfig.xml を以下のように設定します。

${data.dir}

次に、プロパティファイルに値を指定できます。

#solrcore.properties
data.dir=/data/solrindex

もう1つの方法は、この方法でSolrランタイム中にデータディレクトリを指定することです。

java -Dsolr.data.dir=/data/dir -jar start.jar

XMLファイルでは次の構文を使用します。

${solr.data.dir:./solr/data}

より良い方法は、 solr.home 内に solr.xml を定義することです(例:


 
  
  
 

注:ここでは外部変数は使用できないと思います。


最後に、 conf/Catalina/localhost にJVMシステムのプロパティファイル( solr.xml など)を使用します。


  
  

しかし、 solr/home は動作しますが、 solr/data/dir あなたのSolrにパッチを当てることなく作業できます。

See: tomcat_solr.xml.erb

0
追加された