Solr制御スクリプトのリファレンス
Solrには、「bin/solr」というスクリプトが付属しており、Solrのインストールまたはクラスタで多くの一般的な操作を実行できます。
Solrの起動と停止、コレクションまたはコアの作成と削除、ZooKeeperでの操作の実行、Solrと設定済みシャードの状態の確認を行うことができます。
スクリプトは、Solrインストールの `bin/` ディレクトリにあります。 `bin/solr` スクリプトは、単純なコマンドとオプションを提供することで、一般的な目標を迅速に達成し、Solrをより使いやすくします。
使用中の `bin/solr` の詳細な例は、このガイド全体、特にSolrの起動セクションとSolrCloud入門セクションで紹介されています。
起動と停止
起動と再起動
`start` コマンドはSolrを起動します。 `restart` コマンドを使用すると、Solrがすでに実行されている場合、またはすでに停止されている場合にSolrを再起動できます。
`start` および `restart` コマンドには、SolrCloudモードで実行したり、設定例セットを使用したり、デフォルトではないホスト名またはポートで起動したり、ローカルのZooKeeperアンサンブルを指定したりできるいくつかのオプションがあります。
bin/solr start [オプション]
bin/solr start -help
bin/solr restart [オプション]
bin/solr restart -help
`restart` コマンドを使用する場合、Solrを最初に起動したときに渡したすべてのパラメータを渡す必要があります。バックグラウンドでは停止リクエストが開始されるため、Solrは再起動される前に停止されます。すでに実行中のノードがない場合、再起動は停止する手順をスキップし、Solrの起動に進みます。
起動パラメータ
`bin/solr` スクリプトは、リスニングポートの変更など、一般的な方法でサーバーをカスタマイズできる多くのオプションを提供します。ただし、ほとんどのデフォルトは、特に使い始めたばかりの場合は、ほとんどのSolrインストールに適しています。
-a "<jvmParams>"
-
オプション
デフォルト:なし
`-X` で始まるパラメータなど、追加のJVMパラメータを使用してSolrを起動します。たとえば、Solr JVMに接続するJavaデバッガーを設定するには、 `-a "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=18983"` を渡すことができます。ほとんどの場合、追加のパラメータは二重引用符で囲む必要があります。
`-D` で始まるJVMパラメータを渡す場合は、 `-a` オプションを省略できます。
例:
bin/solr start -a "-Xdebug -Xrunjdwp:transport=dt_socket, server=y,suspend=n,address=1044"
-j "<jettyParams>"
-
オプション
デフォルト:なし
Solrの起動時にJettyに渡す追加パラメータ。たとえば、Jettyが読み取る設定フォルダを追加するには、 `-j "--include-jetty-dir=/etc/jetty/custom/server/"` を渡すことができます。ほとんどの場合、追加のパラメータは二重引用符で囲む必要があります。
-cloud
または-c
-
オプション
デフォルト:なし
SolrをSolrCloudモードで起動します。これにより、Solrに含まれる組み込みZooKeeperインスタンスも起動されます。組み込みZooKeeperインスタンスは、Solrのポート+1000で起動されます。Solrが8983にバインドされている場合は9983になります。
組み込みの(シングルノード)ZooKeeperの代わりに使用したいZooKeeperアンサンブルが既に実行されている場合は、
solr.in.sh
/solr.in.cmd
でZK_HOST
を指定するか(Solrインクルードファイルの更新を参照)、-z
パラメーターを渡す必要があります。詳細については、以下のSolrCloudモードセクションを参照してください。
例:
bin/solr start -c
-d <dir>
-
オプション
デフォルト:
server/
サーバーディレクトリを定義します。デフォルトは
server
です($SOLR_TIP/server
など)。このオプションをオーバーライドすることはまれです。同じホストでSolrの複数のインスタンスを実行する場合、各インスタンスで同じサーバーディレクトリを使用し、-s
オプションを使用して一意のSolrホームディレクトリを使用するのが一般的です。例:
bin/solr start -d newServerDir
-e <name>
-
オプション
デフォルト:なし
Solrをサンプル設定で起動します。これらのサンプルは、Solrをより早く使い始めるため、または特定の機能を試すために提供されています。
使用可能なオプションは次のとおりです。
-
cloud
:SolrCloudのサンプル -
techproducts
:Solrの多くのコア機能を示す包括的なサンプル -
schemaless
:スキーマレスのサンプル(スキーマはインデックス作成中にデータから推測されます) -
films
:_default configsetで開始し、明示的なフィールドを動的に追加するサンプルサンプル設定の詳細については、以下のサンプル設定での実行セクションを参照してください。
例:
bin/solr start -e schemaless
-
-f
-
オプション
デフォルト:なし
Solrをフォアグラウンドで起動し、stdout / stderrを
solr-PORT-console.log
に送信します。-e
オプションでサンプルを実行する場合、このオプションは使用できません。例:
bin/solr start -f
-host <hostname>
または-h <hostname>
-
オプション
デフォルト:
localhost
このSolrインスタンスのホスト名を指定します。指定しない場合は、
localhost
と見なされます。例:
bin/solr start -h search.mysolr.com
-m <memory>
-
オプション
デフォルト:512m
Solrを実行するJVMの最小(
-Xms
)および最大(-Xmx
)ヒープサイズを設定します。例:
bin/solr start -m 4g
は、-Xms4g -Xmx4g
設定になります。 -noprompt
-
オプション
デフォルト:なし
入力を求めません。ユーザー入力を許可するサンプルを実行するときは、すべてのデフォルトを受け入れます。
たとえば、「cloud」サンプルを使用する場合、インタラクティブセッションでは、SolrCloudクラスタのいくつかのオプションを選択するようにガイドされます。すべてのデフォルトを受け入れる場合は、リクエストに
-noprompt
オプションを追加するだけです。例:
bin/solr start -e cloud -noprompt
-p <port>
-
オプション
デフォルト:
8983
Solr HTTPリスナーを起動するポートを指定します。Solrの従来のデフォルトポートは8983です。指定されたポート(SOLR_PORT)は、停止ポートの決定にも使用されます。停止ポートはSTOP_PORT=($SOLR_PORT-1000)として定義され、JMX RMIリスンポートはRMI_PORT=($SOLR_PORT+10000)として定義されます。たとえば、-p 8985を設定すると、STOP_PORT=7985、RMI_PORT=18985になります。指定しない場合は、
8983
が使用されます。例:
bin/solr start -p 8655
-s <dir>
-
オプション
デフォルト:
server/solr
solr.solr.home
システムプロパティを設定します。Solrはこのディレクトリの下にコアディレクトリを作成します。これにより、-d
パラメーターを使用して設定された同じサーバーディレクトリを再利用しながら、同じホストで複数のSolrインスタンスを実行できます。設定されている場合、指定されたディレクトリには、solr.xmlがZookeeperに存在しない限り、solr.xmlファイルが含まれている必要があります。サンプル(
-e
)を実行する場合、solr.solr.home
は実行されるサンプルによって異なるため、このパラメーターは無視されます。デフォルト値は
server/solr
です。相対ディレクトリを渡すと、デフォルトのserver/<dir>
を試す前に、現在のディレクトリで検証が行われます。例:
bin/solr start -s newHome
-t <dir>
-
オプション
デフォルト:
solr.solr.home
solr.data.home
システムプロパティを設定します。Solrは、<instance_dir>/dataサブディレクトリにインデックスデータを格納します。設定されていない場合、Solrは設定とデータにsolr.solr.homeを使用します。 -v
-
オプション
デフォルト:なし
より詳細な情報を表示します。これは、SolrのLog4jのログレベルを
INFO
からDEBUG
に変更します。これは、log4j2.xml
を編集した場合と同じ効果があります。例:
bin/solr start -f -v
-q
-
オプション
デフォルト:なし
より静かにします。これは、SolrのLog4jのログレベルを
INFO
からWARN
に変更します。これは、log4j2.xml
を編集した場合と同じ効果があります。これは、ログを警告とエラーに限定したい本番環境で役立ちます。例:
bin/solr start -f -q
-V
または-verbose
-
オプション
デフォルト:なし
このスクリプトからの詳細メッセージ。
例:
bin/solr start -V
-z <zkHost>
または-zkHost <zkHost>
-
オプション
デフォルト: *説明を参照*
Zookeeper接続文字列。このオプションは、
-c
オプションと組み合わせてSolrをSolrCloudモードで起動する場合にのみ使用されます。solr.in.sh
/solr.in.cmd
でZK_HOST
が指定されておらず、このオプションが提供されていない場合、Solrは組み込みZooKeeperインスタンスを起動し、SolrCloud操作にそのインスタンスを使用します。ZKホストにchrootパスがあり、それを自動的に作成する場合は、
ZK_CREATE_CHROOT
環境変数をtrueに設定します。例:
bin/solr start -c -z server1:2181,server2:2181
-force
-
オプション
デフォルト:なし
rootユーザーとしてSolrを起動しようとすると、スクリプトは「root」としてSolrを実行すると問題が発生する可能性があるという警告を出して終了します。
-force
パラメーターを使用してこの警告をオーバーライドすることができます。例:
sudo bin/solr start -force
デフォルト設定の仕組みを強調するために、次のコマンドは同等であることを理解してください。
bin/solr start
bin/solr start -h localhost -p 8983 -d server -s solr -m 512m
デフォルト設定でニーズを満たせる場合は、起動時にすべてのオプションを定義する必要はありません。
Javaシステムプロパティの設定
bin/solr
スクリプトは、-D
で始まる追加パラメーターをJVMに渡します。これにより、任意のJavaシステムプロパティを設定できます。
たとえば、自動ソフトコミット頻度を3秒に設定するには、次のようにします。
bin/solr start -Dsolr.autoSoftCommit.maxTime=3000
Solrは、SOLR_FOO_BAR
形式の環境変数をシステムプロパティsolr.foo.bar
に変換するため、環境を介してほとんどのプロパティを挿入できます。例:
SOLR_LOG_LEVEL=debug bin/solr start
SOLR_OPTS
環境変数を使用して、Solrの追加のシステムプロパティを設定することもできます。
start
以外のSolrユーティリティ(例:stop
、create
、auth
、status
、api
)を実行するときにカスタムシステムプロパティを設定するには、SOLR_TOOL_OPTS
環境変数を使用する必要があります。
SolrCloudモード
-c
オプションと-cloud
オプションは同等です。
bin/solr start -c
bin/solr start -cloud
-z 192.168.1.4:2181
などのZooKeeper接続文字列を指定すると、SolrはZooKeeperに接続してクラスタに参加します。
solr.in.sh /solr.in.cmd でZK_HOST を定義している場合(xref:zookeeper-ensemble.adoc#updating-solr-include-files、Solrインクルードファイルの更新>>を参照)、すべてのbin/solr コマンドから-z <zk host string> を省略できます。 |
SolrCloudモードでSolrを起動するときに、solr.in.sh
/solr.in.cmd
でZK_HOST
を定義せず、-z
オプションも指定しない場合、SolrはSolrポート+ 1000でリッスンする組み込みZooKeeperサーバーを起動します。たとえば、Solrがポート8983で実行されている場合、組み込みZooKeeperはポート9983でリッスンします。
ZooKeeper接続文字列で これを行うには、以下に概説する |
SolrCloudモードで起動すると、インタラクティブスクリプトセッションで使用するconfigsetを選択するように求められます。
SolrCloudモードでSolrを起動する方法の詳細については、SolrCloud入門セクションも参照してください。
サンプル設定での実行
bin/solr start -e <name>
サンプル設定を使用すると、Solrで実現したいことを反映した設定ですぐに使い始めることができます。
各サンプルは、スキーマAPIを使用してスキーマを編集できる管理スキーマを使用してSolrを起動しますが、スキーマファイルの手動編集は許可しません。
schema.xml
ファイルを手動で直接変更する場合は、スキーマファクトリ設定セクションの説明に従って、このデフォルトを変更できます。
以下の説明で特に明記されていない限り、サンプルではSolrCloudもスキーマレスモードも有効になりません。
次のサンプルが提供されています。
-
**cloud**:このサンプルは、単一のマシンに1〜4ノードのSolrCloudクラスタを起動します。選択すると、インタラクティブセッションが開始され、使用する初期configset、サンプルクラスタのノード数、使用するポート、および作成されるコレクションの名前を選択するオプションが表示されます。
このサンプルを使用すると、
$SOLR_TIP/server/solr/configsets
にある使用可能なconfigsetから選択できます。 -
**techproducts**:このサンプルは、
$SOLR_HOME/example/exampledocs
ディレクトリに含まれるサンプルドキュメント用に設計されたスキーマを使用して、シングルノードSolrインスタンスを起動します。使用されるconfigsetは、
$SOLR_TIP/server/solr/configsets/sample_techproducts_configs
にあります。使用されるデータは、
$SOLR_HOME/example/exampledocs/
にあります。 -
**schemaless**:このサンプルは、スキーマファクトリ設定セクションで説明されているように、管理対象スキーマを使用してシングルノードSolrインスタンスを起動し、非常に最小限の事前定義スキーマを提供します。Solrは、この設定でスキーマレスモードで実行されます。Solrは、スキーマにフィールドをオンザフライで作成し、受信ドキュメントで使用されるフィールドタイプを推測します。
使用されるconfigsetは、
$SOLR_TIP/server/solr/configsets/_default
にあります。 -
**films**:このサンプルは、スキーマファクトリ設定セクションで説明されているように、管理対象スキーマを使用してシングルノードSolrインスタンスを起動し、スキーマAPIを使用してカスタムフィールドを作成します。Solrは、この設定でスキーマレスモードで実行され、スキーマにフィールドをオンザフライで作成し、受信ドキュメントで使用されるフィールドタイプも推測します。次に、サンプルのフィルムデータをロードします。
使用されるconfigsetは、
$SOLR_TIP/server/solr/configsets/_default
にあります。使用されるフィルムデータは、
$SOLR_HOME/example/films/films.json
にあります。
フォアグラウンドで実行するオプション( |
停止
stop
コマンドは、実行中のSolrノードにSTOPリクエストを送信し、正常にシャットダウンできるようにします。コマンドは、Solrが正常に停止するまで最大180秒間待機し、その後、プロセスを強制終了します(kill -9
)。
bin/solr stop [options]
bin/solr stop -help
停止パラメーター
-p <port>
-
オプション
デフォルト:なし
指定されたポートで実行されているSolrを停止します。複数のインスタンスを実行している場合、またはSolrCloudモードで実行している場合は、個別のリクエストでポートを指定するか、
-all
オプションを使用する必要があります。例:
bin/solr stop -p 8983
-all
-
オプション
デフォルト:なし
このホスト上で実行中で、有効なPIDを持つすべてのSolrサーバーを検索して停止します。
例:
bin/solr stop -all
-k <key>
-
オプション
デフォルト:なし
Solrの意図しない停止を防ぐために使用される停止キー。デフォルトは「solrrocks」です。
例:
bin/solr stop -k solrrocks
-V
または-verbose
-
オプション
デフォルト:なし
このスクリプトからの詳細なメッセージと共にSolrを停止します。
例:
bin/solr stop -V
システム情報
ステータス
status
コマンドは、ローカルで実行されているすべてのSolrサーバーの基本的なJSON形式のステータス情報を表示します。
status
コマンドは、SOLR_PID_DIR
環境変数を使用してSolrプロセスIDファイルを探し、実行中のSolrインスタンスを見つけます。デフォルトはbin
ディレクトリです。
bin/solr status
出力には、この例のように、クラスタの各ノードのステータスが含まれます
Found 2 Solr nodes:
Solr process 39920 running on port 7574
{
"solr_home":"/Applications/Solr/example/cloud/node2/solr/",
"version":"X.Y.0",
"startTime":"2015-02-10T17:19:54.739Z",
"uptime":"1 days, 23 hours, 55 minutes, 48 seconds",
"memory":"77.2 MB (%15.7) of 490.7 MB",
"cloud":{
"ZooKeeper":"localhost:9865",
"liveNodes":"2",
"collections":"2"}}
Solr process 39827 running on port 8865
{
"solr_home":"/Applications/Solr/example/cloud/node1/solr/",
"version":"X.Y.0",
"startTime":"2015-02-10T17:19:49.057Z",
"uptime":"1 days, 23 hours, 55 minutes, 54 seconds",
"memory":"94.2 MB (%19.2) of 490.7 MB",
"cloud":{
"ZooKeeper":"localhost:9865",
"liveNodes":"2",
"collections":"2"}}
アサート
assert
コマンドは、Solrインストールにおける一般的な問題の健全性チェックを実行します。これには、特定のディレクトリの所有権/存在の確認、および予期されるURLでSolrが使用可能であることの確認が含まれます。このコマンドは、指定されたエラーメッセージを出力するか、エラーを示すために終了コードを変更することができます。
例として
$ bin/solr assert --exists /opt/bin/solr
以下の出力が得られます
ERROR: Directory /opt/bin/solr does not exist.
bin/solr assert
の基本的な使い方は以下のとおりです
$ bin/solr assert -h
usage: bin/solr assert [-m <message>] [-e] [-rR] [-s <url>] [-S <url>] [-c
<url>] [-C <url>] [-u <dir>] [-x <dir>] [-X <dir>]
-c,--cloud <url> Asserts that Solr is running in cloud mode.
Also fails if Solr not running. URL should
be for root Solr path.
-C,--not-cloud <url> Asserts that Solr is not running in cloud
mode. Also fails if Solr not running. URL
should be for root Solr path.
-e,--exitcode Return an exit code instead of printing
error message on assert fail.
-help Print this message
-m,--message <message> Exception message to be used in place of
the default error message.
-R,--not-root Asserts that we are NOT the root user.
-r,--root Asserts that we are the root user.
-S,--not-started <url> Asserts that Solr is NOT running on a
certain URL. Default timeout is 1000ms.
-s,--started <url> Asserts that Solr is running on a certain
URL. Default timeout is 1000ms.
-t,--timeout <ms> Timeout in ms for commands supporting a
timeout.
-u,--same-user <directory> Asserts that we run as same user that owns
<directory>.
-verbose Enable more verbose command output.
-x,--exists <directory> Asserts that directory <directory> exists.
-X,--not-exists <directory> Asserts that directory <directory> does NOT
exist.
ヘルスチェック
healthcheck
コマンドは、SolrCloudモードで実行されている場合、コレクションのJSON形式のヘルスレポートを生成します。ヘルスレポートは、コミットされたドキュメントの数と現在の状態を含む、コレクション内のすべてのシャードのすべてのレプリカの状態に関する情報を提供します。
bin/solr healthcheck [オプション]
bin/solr healthcheck -help
ヘルスチェックパラメータ
-c <collection>
-
必須
デフォルト:なし
ヘルスチェックを実行するコレクションの名前。
例:
bin/solr healthcheck -c gettingstarted
-solrUrl <url>
-
オプション
デフォルト:なし
ベースSolr URL。SolrCloudモードで、ZooKeeper接続文字列が不明な場合に、ZooKeeper接続文字列を決定するために使用できます。
-z <zkhost>
または-zkHost <zkhost>
-
オプション
デフォルト:
localhost:9983
ZooKeeper接続文字列。8983以外のポートでSolrを実行している場合は、ZooKeeper接続文字列を指定する必要があります。デフォルトでは、Solrポート+ 1000になります。
solr.in.sh
またはsolr.in.cmd
でZK_HOST
が定義されている場合、このパラメータは不要です。例:
bin/solr healthcheck -z localhost:2181
以下は、2つのノードが実行されている、標準以外のZooKeeper接続文字列を使用したヘルスチェックのリクエストとレスポンスの例です
$ bin/solr healthcheck -c gettingstarted -z localhost:9865
{
"collection":"gettingstarted",
"status":"healthy",
"numDocs":0,
"numShards":2,
"shards":[
{
"shard":"shard1",
"status":"healthy",
"replicas":[
{
"name":"core_node1",
"url":"http://10.0.1.10:8865/solr/gettingstarted_shard1_replica2/",
"numDocs":0,
"status":"active",
"uptime":"2 days, 1 hours, 18 minutes, 48 seconds",
"memory":"25.6 MB (%5.2) of 490.7 MB",
"leader":true},
{
"name":"core_node4",
"url":"http://10.0.1.10:7574/solr/gettingstarted_shard1_replica1/",
"numDocs":0,
"status":"active",
"uptime":"2 days, 1 hours, 18 minutes, 42 seconds",
"memory":"95.3 MB (%19.4) of 490.7 MB"}]},
{
"shard":"shard2",
"status":"healthy",
"replicas":[
{
"name":"core_node2",
"url":"http://10.0.1.10:8865/solr/gettingstarted_shard2_replica2/",
"numDocs":0,
"status":"active",
"uptime":"2 days, 1 hours, 18 minutes, 48 seconds",
"memory":"25.8 MB (%5.3) of 490.7 MB"},
{
"name":"core_node3",
"url":"http://10.0.1.10:7574/solr/gettingstarted_shard2_replica1/",
"numDocs":0,
"status":"active",
"uptime":"2 days, 1 hours, 18 minutes, 42 seconds",
"memory":"95.4 MB (%19.4) of 490.7 MB",
"leader":true}]}]}
コレクションとコア
bin/solr
スクリプトは、新しいコレクションまたはコアの作成、またはコレクションまたはコアの削除にも役立ちます。
コアまたはコレクションの作成
create
コマンドは、Solrがスタンドアロン(コア)モードで実行されているか、SolrCloudモード(コレクション)で実行されているかに応じて、コアまたはコレクションを作成します。つまり、このアクションはSolrがどのモードで実行されているかを検出し、適切なアクション(create_core
またはcreate_collection
)を実行します。
bin/solr create [オプション]
bin/solr create -help
コアまたはコレクションの作成パラメータ
-c <name>
-
必須
デフォルト:なし
作成するコアまたはコレクションの名前。
例:
bin/solr create -c mycollection
-d <confdir>
-
オプション
デフォルト:
_default
設定ディレクトリ。
SolrCloudモードで実行する場合のこのオプションの詳細については、以下の設定ディレクトリとSolrCloudセクションを参照してください。
例:
bin/solr create -d _default
-n <configName>
-
オプション
デフォルト: *説明を参照*
設定名。デフォルトはコアまたはコレクションと同じ名前です。
例:
bin/solr create -n basic
-p <port>
または-port <port>
-
オプション
デフォルト: *説明を参照*
作成コマンドを送信するローカルSolrインスタンスのポート。デフォルトでは、スクリプトは実行中のSolrインスタンスを検索してポートを検出しようとします。
このオプションは、同じホストで複数のSolrインスタンスを実行している場合に、コアを作成するインスタンスを指定する必要がある場合に役立ちます。
例:
bin/solr create -p 8983
-s <shards>
または-shards <shards>
-
オプション
デフォルト:
1
コレクションを分割するシャードの数。SolrがSolrCloudモードで実行されている場合にのみ適用されます。
例:
bin/solr create -s 2
-rf <replicas>
または-replicationFactor <replicas>
-
オプション
デフォルト:
1
コレクション内の各ドキュメントのコピー数。デフォルトは
1
(レプリケーションなし)です。例:
bin/solr create -rf 2
-force
-
オプション
デフォルト:なし
「root」ユーザーとしてcreateを実行しようとすると、スクリプトは、「root」としてSolrを実行したり、Solrに対してアクションを実行したりすると問題が発生する可能性があるという警告を出して終了します。 -forceパラメータを使用して、この警告をオーバーライドできます。
例:
bin/solr create -c foo -force
コレクションの作成
create_collection
コマンドはコレクションを作成し、SolrCloudモードで実行されている場合にのみ使用できます。
bin/solr create_collection [オプション]
bin/solr create_collection -help
コレクションの作成パラメータ
-c <name>
-
必須
デフォルト:なし
作成するコレクションの名前。
例:
bin/solr create_collection -c mycollection
-d <confdir>
-
オプション
デフォルト:
_default
新しいコレクションを作成するときにコピーする設定ディレクトリ。
SolrCloudモードで実行する場合のこのオプションの詳細(組み込みの構成例を含む)については、以下の設定ディレクトリとSolrCloudセクションを参照してください。
_default
は、スキーマレスモードとしても知られています。例:
bin/solr create_collection -d _default
または、組み込みの構成のいずれかを使用する代わりに、独自の構成ディレクトリへのパスを渡すこともできます。
例:
bin/solr create_collection -c mycoll -d /tmp/myconfig
デフォルトでは、スクリプトは、コレクション(-c)オプションと同じ名前を使用して、指定されたconfdirディレクトリをZookeeperにアップロードします。代わりに、既存のディレクトリを再利用したり、複数のコレクションで共有できるZookeeperにconfdirを作成したりする場合は、-nオプションを使用します
-n <configName>
-
オプション
デフォルト: *説明を参照*
Zookeeperの設定ディレクトリに名前を付けます。デフォルトでは、設定はコレクション名(-c)を使用してZookeeperにアップロードされますが、既存のディレクトリを使用するか、Zookeeperの設定の名前をオーバーライドする場合は、-cオプションを使用します。うーん…上記の行をbin / solr create_collection -h出力からコピーしましたが、わかりません。そしてbin / solr create_collection -n basic -c mycollは動作し、「basic」configsetとして_defaultのコピーを作成します…うーん?
例:
bin/solr create_collection -n basic -c mycoll
-p <port>
または-port <port>
-
オプション
デフォルト: *説明を参照*
新しいコレクションを作成するローカルSolrインスタンスのポート。指定しない場合、スクリプトはローカルシステムで実行中のSolrインスタンスを検索し、最初に見つかったサーバーのポートを使用します。
このオプションは、同じホストで複数のSolrインスタンスを実行している場合に、コアを作成するインスタンスを指定する必要がある場合に役立ちます。
例:
bin/solr create -p 8983
-s <shards>
または-shards <shards>
-
オプション
デフォルト:
1
コレクションを分割するシャードの数。
例:
bin/solr create_collection -s 2
-rf <replicas>
または-replicationFactor <replicas>
-
オプション
デフォルト:
1
コレクション内の各ドキュメントのコピー数。デフォルトは
1
(レプリケーションなし)です。例:
bin/solr create_collection -rf 2
-force
-
オプション
デフォルト:なし
「root」ユーザーとしてcreateを実行しようとすると、スクリプトは、「root」としてSolrを実行したり、Solrに対してアクションを実行したりすると問題が発生する可能性があるという警告を出して終了します。 -forceパラメータを使用して、この警告をオーバーライドできます。
例:
bin/solr create_collection -c foo -force
コアの作成
create_core
コマンドはコアを作成し、ユーザー管理(シングルノード)モードで実行されている場合にのみ使用できます。
bin/solr create_core [オプション]
bin/solr create_core -help
コアの作成パラメータ
-c <name>
-
必須
デフォルト:なし
作成するコアの名前。
例:
bin/solr create -c mycore
-d <confdir>
-
オプション
デフォルト:
_default
新しいコアを作成するときに使用する設定ディレクトリ。
例:
bin/solr create -d _default
または、組み込みの構成のいずれかを使用する代わりに、独自の構成ディレクトリへのパスを渡すこともできます。
例:
bin/solr create_collection -c mycore -d /tmp/myconfig
-p <port>
または-port <port>
-
オプション
デフォルト: *説明を参照*
新しいコアを作成するローカルSolrインスタンスのポート。デフォルトでは、スクリプトは実行中のSolrインスタンスを検索してポートを検出しようとします。
このオプションは、同じホストで複数のSolrインスタンスを実行している場合に、コアを作成するインスタンスを指定する必要がある場合に役立ちます。
例:
bin/solr create -p 8983
-force
-
オプション
デフォルト:なし
「root」ユーザーとしてcreateを実行しようとすると、スクリプトは、「root」としてSolrを実行したり、Solrに対してアクションを実行したりすると問題が発生する可能性があるという警告を出して終了します。 -forceパラメータを使用して、この警告をオーバーライドできます。
例:
bin/solr create -c foo -force
設定ディレクトリとSolrCloud
SolrCloudでコレクションを作成する前に、コレクションが使用する設定ディレクトリをZooKeeperにアップロードする必要があります。 create
コマンドとcreate_collection
コマンドは、コレクションと設定ディレクトリの連携方法に関するいくつかのユースケースをサポートしています。決定する必要がある主なことは、ZooKeeperの設定ディレクトリを複数のコレクションで共有するかどうかです。
SolrCloudでの設定ディレクトリの動作を説明するために、いくつかの例を見ていきましょう。
まず、-d
オプションまたは-n
オプションを指定しないと、デフォルトの設定($SOLR_TIP/server/solr/configsets/_default/conf
)がコレクションと同じ名前を使用してZooKeeperにアップロードされます。
たとえば、次のコマンドを実行すると、_default
設定がZooKeeperの/configs/contacts
にアップロードされます。 bin/solr create -c contacts
.
bin/solr create -c contacts2
を使用して別のコレクションを作成すると、_default
ディレクトリの別のコピーがZooKeeperの/configs/contacts2
の下にアップロードされます。
contactsコレクションの設定に加えた変更は、contacts2
コレクションには影響しません。簡単に言うと、デフォルトの動作では、作成するコレクションごとに設定ディレクトリの一意のコピーが作成されます。
-n
オプションを使用して、ZooKeeperの設定ディレクトリに付けられた名前をオーバーライドできます。たとえば、コマンドbin/solr create -c logs -d _default -n basic
は、server/solr/configsets/_default/conf
ディレクトリをZooKeeperに/configs/basic
としてアップロードします。
デフォルトとは異なる設定を指定するために-d
オプションを使用しました。Solrは、server/solr/configsets
の下にいくつかの組み込み設定を提供しています。ただし、-d
オプションを使用して独自の構成ディレクトリへのパスを指定することもできます。たとえば、コマンドbin/solr create -c mycoll -d /tmp/myconfigs
は、/tmp/myconfigs
をZooKeeperの/configs/mycoll
の下にアップロードします。
繰り返しますが、設定ディレクトリは、-n
オプションを使用してオーバーライドしない限り、コレクションの名前が付けられます。
他のコレクションは、-n
オプションを使用して共有設定の名前を指定することで、同じ設定を共有できます。たとえば、次のコマンドは、以前に作成された基本設定を共有する新しいコレクションを作成します。bin/solr create -c logs2 -n basic
.
データ駆動型スキーマと共有設定
_default
スキーマは、スキーマレス機能(つまり、スキーマに対するデータ駆動型の変更)を備えているため、データがインデックス化されると変化する可能性があります。そのため、すべてのコレクションが、いずれかのコレクションにデータをインデックス化するときに行われた変更を継承する必要があると確信している場合を除き、コレクション間でデータ駆動型設定を共有しないことをお勧めします。
コレクション名が mycollection
であると仮定すると、次のコマンドを使用して、コレクションのスキーマレス機能をオフにすることができます。
$ bin/solr config -c mycollection -p 8983 -action set-user-property -property update.autoCreateFields -value false
設定プロパティの設定または設定解除セクションも参照してください。
コアまたはコレクションの削除
delete
コマンドは、Solr が実行されているモードを検出し、指定されたコア(ユーザー管理またはシングルノード)またはコレクション(SolrCloud)を適切に削除します。
bin/solr delete [options]
bin/solr delete -help
SolrCloud モードでコレクションを削除する場合、デフォルトの動作では、設定ディレクトリが他のコレクションで使用されていない限り、Zookeeper からも削除されます。
たとえば、bin/solr create -c contacts
でコレクションを作成した場合、削除コマンド bin/solr delete -c contacts
は、/configs/contacts
設定ディレクトリが他のコレクションで使用されているかどうかを確認します。使用されていない場合、/configs/contacts
ディレクトリは ZooKeeper から削除されます。このコマンドを実行するときに -deleteConfig false
を渡すことで、この動作をオーバーライドできます。
コアまたはコレクションの削除パラメーター
-c <name>
-
必須
デフォルト:なし
削除するコアまたはコレクションの名前。
例:
bin/solr delete -c mycoll
-deleteConfig
-
オプション
デフォルト:
true
設定ディレクトリも ZooKeeper から削除するかどうか。
設定ディレクトリが他のコレクションで使用されている場合、
-deleteConfig
をtrue
として渡しても削除されません。例:
bin/solr delete -deleteConfig false
-p <port>
または-port <port>
-
オプション
デフォルト: *説明を参照*
削除コマンドを送信するローカル Solr インスタンスのポート。指定しない場合、スクリプトはローカルシステムで実行中の Solr インスタンスを検索し、最初に見つかったサーバーのポートを使用します。
このオプションは、同じホストで複数の Solr インスタンスを実行している場合に、コアを削除するインスタンスを指定する必要がある場合に役立ちます。
例:
bin/solr delete -p 8983
認証
bin/solr
スクリプトでは、認証を有効または無効にすることができ、コマンドラインから認証を設定できます。
現在、このコマンドは SolrCloud モードを使用している場合にのみ使用でき、Solr をホストしているマシンで実行する必要があります。
基本認証の場合、スクリプトはユーザーロールと権限マッピングを提供し、作成されたユーザーを superadmin
ロールにマップします。 Kerberos の場合、security.json を有効にするだけで、ユーザーやロールマッピングは設定しません。
基本認証の有効化
bin/solr auth enable
コマンドは、ユーザーインターフェース、bin/solr
、および API リクエストにアクセスする際に基本認証を使用するように Solr を設定します。
Solr の認証プラグインの詳細については、Solr のセキュリティ保護セクションを参照してください。基本認証サポートの詳細については、基本認証プラグインセクションを参照してください。 |
bin/solr auth enable
コマンドは、基本認証を有効にするためにいくつかの変更を行います
-
ベースの security.json ファイルを取得し、
auth
コマンドパラメーターを使用して展開し、新しいファイルを ZooKeeper にアップロードします。 -
認証タイプと
basicAuth.conf
へのパスを設定するために、bin/solr.in.sh
またはbin\solr.in.cmd
に 2 行を追加します# The following lines added by ./solr for enabling BasicAuth SOLR_AUTH_TYPE="basic" SOLR_AUTHENTICATION_OPTS="-Dsolr.httpclient.config=/path/to/solr-9.5.0/server/solr/basicAuth.conf"
-
bin/solr
コマンドで使用される認証情報を格納するファイルserver/solr/basicAuth.conf
を作成します。
使用例を次に示します
Usage: solr auth enable [-type basicAuth] -credentials user:pass [-blockUnknown <true|false>] [-updateIncludeFileOnly <true|false>] [-V]
solr auth enable [-type basicAuth] -prompt <true|false> [-blockUnknown <true|false>] [-updateIncludeFileOnly <true|false>] [-V]
solr auth enable -type kerberos -config "<kerberos configs>" [-updateIncludeFileOnly <true|false>] [-V]
solr auth disable [-updateIncludeFileOnly <true|false>] [-V]
コマンドは次のパラメーターを取ります
-credentials <user:pass>
-
オプション
デフォルト:なし
初期ユーザーのユーザー名とパスワードを
username:password
の形式で指定します。 basicAuth にのみ適用されます。ユーザー名とパスワードを引数としてスクリプトに渡したくない場合は、
-prompt
オプションを選択できます。-credentials
または-prompt
のいずれかを必ず指定する必要があります。 -prompt <true|false>
-
オプション
デフォルト:なし
ユーザーに認証情報の入力を求めます。プロンプトが望ましい場合は、パラメーターとして
true
を渡して、スクリプトがユーザーにユーザー名とパスワードの入力を求めるように要求します。-credentials
または-prompt
のいずれかを必ず指定する必要があります。 -blockUnknown <true|false>
-
オプション
デフォルト:
true
true
の場合、認証されていないユーザーが Solr にアクセスするのをブロックします。false
の場合、認証されていないユーザーは引き続き Solr にアクセスできますが、認証プラグイン構成でユーザーロールを明示的に必要としない操作にのみアクセスできます。 -solrIncludeFile <includeFilePath>
-
オプション
デフォルト:なし
環境内のインクルードファイルへのフルパスを指定します。指定しない場合、このスクリプトは環境変数を設定するために solr.in.sh という名前のインクルードファイルを探します。具体的には、次の場所がこの順序で検索されます
-
<script location>/.
-
$HOME/.solr.in.sh
-
/usr/share/solr
-
/usr/local/share/solr
-
/etc/default
-
/var/solr
-
/opt/solr
-
-updateIncludeFileOnly <true|false>
-
オプション
デフォルト:
false
true
の場合、bin/solr.in.sh
またはbin\solr.in.cmd
のみを更新し、実際の認証の有効化/無効化はスキップします(つまり、security.json
は更新しません)。 -z <zkHost>
または-zkHost <zkHost>
-
オプション
デフォルト:なし
ZooKeeper 接続文字列を定義します。これは、すべての Solr ノードが起動する前に認証を有効にしたい場合に役立ちます。
ZK_HOST
がsolr.in.sh
またはsolr.in.cmd
で定義されている場合は不要です。 -d <dir>
-
オプション
デフォルト:
$SOLR_TIP/server
Solr サーバーディレクトリを定義します。デフォルトは
$SOLR_TIP/server
です。デフォルトをオーバーライドする必要があることはあまりなく、$SOLR_HOME
ディレクトリパスをカスタマイズした場合にのみ必要です。 -s <dir>
または-solr.home <dir>
-
オプション
デフォルト:
server/solr
デフォルトで
server/solr
であるsolr.solr.home
の場所を定義します。同じホストに Solr のインスタンスが複数ある場合、または$SOLR_HOME
ディレクトリパスをカスタマイズした場合は、これを定義する必要がある可能性があります。これは、認証情報または認証構成ファイル(例:basicAuth.conf)が配置される場所です。
基本認証の無効化
bin/solr auth disable
で基本認証を無効にできます。
-updateIncludeFileOnly
オプションが true に設定されている場合、bin/solr.in.sh
または bin\solr.in.cmd
の設定のみが更新され、security.json
は削除されません。
-updateIncludeFileOnly
オプションが false に設定されている場合、bin/solr.in.sh
または bin\solr.in.cmd
の設定が更新され、security.json
が削除されます。ただし、basicAuth.conf
ファイルはいずれのオプションでも削除されません。
設定プロパティの設定または設定解除
bin/solr
スクリプトは、Config API のサブセットを有効にします。共通プロパティの設定(解除)と ユーザー定義プロパティの設定(解除)。
bin/solr config [options]
bin/solr config -help
共通プロパティの設定または設定解除
コレクション mycollection
の共通プロパティ updateHandler.autoCommit.maxDocs
を 100
に設定するには
bin/solr config -c mycollection -p 8983 -action set-property -property updateHandler.autoCommit.maxDocs -value 100
デフォルトの -action
は set-property
なので、上記はそれを省略することで短縮できます
bin/solr config -c mycollection -p 8983 -property updateHandler.autoCommit.maxDocs -value 100
以前に設定した共通プロパティの設定を解除するには、-value
なしで -action unset-property
を指定します
bin/solr config -c mycollection -p 8983 -action unset-property -property updateHandler.autoCommit.maxDocs
ユーザー定義プロパティの設定または設定解除
ユーザー定義プロパティ update.autoCreateFields
を false
に設定して、スキーマレスモードを無効にするには
bin/solr config -c mycollection -p 8983 -action set-user-property -property update.autoCreateFields -value false
以前に設定したユーザー定義プロパティの設定を解除するには、-value
なしで -action unset-user-property
を指定します
bin/solr config -c mycollection -p 8983 -action unset-user-property -property update.autoCreateFields
設定パラメーター
-c <name>
または-collection <name>
-
必須
デフォルト:なし
設定を変更するコアまたはコレクションの名前。
-action <name>
-
オプション
デフォルト:
set-property
Config API アクション。
set-property
、unset-property
、set-user-property
、unset-user-property
のいずれかです。 -property <name>
-
必須
デフォルト:なし
アクションを適用する Config API プロパティの名前。例: 'updateHandler.autoSoftCommit.maxTime'。
-value <new-value>
-
オプション
デフォルト:なし
プロパティをこの値に設定します。JSON オブジェクトと文字列を受け入れます。
-z <zkHost>
または-zkHost <zkHost>
-
オプション
デフォルト:
localhost:9983
ZooKeeper 接続文字列。SolrCloud モードで使用できます。
ZK_HOST
がsolr.in.sh
またはsolr.in.cmd
で定義されている場合は不要です。 -p <port>
または-port <port>
-
オプション
デフォルト:なし
設定変更を適用するときに使用する Solr ノードの
localhost
ポート。 -solrUrl <url>
-
オプション
デフォルト:
https://127.0.0.1:8983/solr
ベースSolr URL。SolrCloudモードで、ZooKeeper接続文字列が不明な場合に、ZooKeeper接続文字列を決定するために使用できます。
-s <scheme>
または-scheme <scheme>
-
オプション
デフォルト:
http
Solrへのアクセス方式。使用可能な値:http または https。デフォルトは 'http' です。
ZooKeeper操作
bin/solr
スクリプトは、ZooKeeperに影響を与える特定の操作を許可します。これらの操作はSolrCloudモードでのみ使用できます。
操作は、それぞれ独自のオプションセットを持つサブコマンドとして使用できます。
bin/solr zk [サブコマンド] [オプション]
bin/solr zk -help
bin/solr zk の基本的な使い方は次のとおりです。
$ bin/solr zk -h
Usage: solr zk upconfig|downconfig -d <confdir> -n <configName> [-z zkHost]
solr zk cp [-r] <src> <dest> [-z zkHost]
solr zk rm [-r] <path> [-z zkHost]
solr zk mv <src> <dest> [-z zkHost]
solr zk ls [-r] <path> [-z zkHost]
solr zk mkroot <path> [-z zkHost]
SolrがZooKeeperをSolrが期待するznodeで初期化するには、これらのコマンドを実行する前に、少なくとも一度Solrを起動しておく必要があります。ZooKeeperが初期化されると、これらのコマンドを使用するために、どのノードでもSolrを実行する必要はありません。 |
設定セットのアップロード
事前設定された設定セットまたはカスタマイズされた設定セットをZooKeeperにアップロードするには、zk upconfig
コマンドを使用します。
ZKアップロードパラメータ
以下のすべてのパラメータは必須です。
-n <名前>
-
必須
デフォルト:なし
ZooKeeper内の設定セットの名前。このコマンドは、指定された名前を付けて設定セットを「configs」ZooKeeperノードにアップロードします。
アップロードされたすべての設定セットは、管理UIのクラウド画面で確認できます。クラウド → ツリー → configs を選択して表示します。
既存の設定セットが指定されている場合、ZooKeeperで上書きされます。
例:
-n myconfig
-d <設定セットディレクトリ>
-
必須
デフォルト:なし
アップロードする設定セットのローカルディレクトリ。その直下に
conf
ディレクトリがあり、その中にsolrconfig.xml
などが含まれている必要があります。名前のみが指定されている場合、
$SOLR_TIP/server/solr/configsets
でこの名前がチェックされます。代わりに絶対パスを指定することもできます。例:
-
-d directory_under_configsets
-
-d /path/to/configset/source
-
-z <zkHost>
-
必須
デフォルト:なし
ZooKeeper接続文字列。
solr.in.sh
またはsolr.in.cmd
でZK_HOST
が定義されている場合は不要です。例:
-z 123.321.23.43:2181
すべてのパラメータを指定したこのコマンドの例は次のとおりです。
bin/solr zk upconfig -z 111.222.333.444:2181 -n mynewconfig -d /path/to/configset
設定変更時のコレクションのリロード
このコマンドは、変更を自動的に有効にすることは**ありません**!設定セットをZooKeeperにアップロードするだけです。コレクションAPIのRELOADコマンドを使用して、この設定セットを使用するコレクションをリロードできます。 |
設定セットのダウンロード
ZooKeeperからローカルファイルシステムに設定セットをダウンロードするには、zk downconfig
コマンドを使用します。
ZKダウンロードパラメータ
以下にリストされているすべてのパラメータは必須です。
-n <名前>
-
必須
デフォルト:なし
ダウンロードするZooKeeper内の設定セットの名前。管理UIのクラウド → ツリー → configs ノードには、使用可能なすべての設定セットが一覧表示されます。
例:
-n myconfig
-d <設定セットディレクトリ>
-
必須
デフォルト:なし
ダウンロードした設定セットを書き込むパス。名前のみが指定されている場合、
$SOLR_TIP/server/solr/configsets
が親になります。絶対パスも指定できます。いずれの場合も、*宛先に既存の設定がある場合は上書きされます*!
例:
-
-d directory_under_configsets
-
-d /path/to/configset/destination
-
-z <zkHost>
-
必須
デフォルト:なし
ZooKeeper接続文字列。
solr.in.sh
またはsolr.in.cmd
でZK_HOST
が定義されている場合は不要です。例:
-z 123.321.23.43:2181
すべてのパラメータを指定したこのコマンドの例は次のとおりです。
bin/solr zk downconfig -z 111.222.333.444:2181 -n mynewconfig -d /path/to/configset
ベストプラクティスは、設定セットを何らかのバージョン管理システムで記録システムとして保持することです。そのシナリオでは、downconfig
を使用する機会はほとんどありません。
ローカルファイルとZooKeeper znode間のコピー
ZooKeeper znodeとローカルドライブ間でファイルとディレクトリを転送するには、zk cp
コマンドを使用します。このコマンドは、ローカルドライブからZooKeeper、ZooKeeperからローカルドライブ、またはZooKeeperからZooKeeperにコピーします。
ZKコピーパラメータ
-r
-
オプション
デフォルト:なし
<src> を <dst> に再帰的にコピーします。
<src>
に子がいて、-r
が指定されていない場合、コマンドは失敗します。例:
-r
<src>
-
必須
デフォルト:なし
コピー元のファイルまたはパス。
zk:
が前に付いている場合、ソースはZooKeeperであると見なされます。プレフィックスがないか、プレフィックスがfile:
の場合、ローカルドライブであると見なされます。<src>
または<dest>
の少なくとも一方にzk:
が付いていないと、コマンドは失敗します。例:
-
zk:/configs/myconfigs/solrconfig.xml
-
file:/Users/apache/configs/src
-
<dest>
-
必須
デフォルト:なし
コピー先のファイルまたはパス。
zk:
が前に付いている場合、ソースはZooKeeperであると見なされます。プレフィックスがないか、プレフィックスがfile:
の場合、ローカルドライブであると見なされます。<src>
または<dest>
の少なくとも一方にzk:
が付いていないと、コマンドは失敗します。<dest>
がスラッシュ文字で終わる場合、ディレクトリを指定します。例:
-
zk:/configs/myconfigs/solrconfig.xml
-
file:/Users/apache/configs/src
-
-z <zkHost>
-
必須
デフォルト:なし
ZooKeeper接続文字列。
solr.in.sh
またはsolr.in.cmd
でZK_HOST
が定義されている場合はオプションです。例:
-z 123.321.23.43:2181
<src>
がzkリソースの場合、<dest>
は '.' にすることができます。 <dest>
が '/' で終わる場合、<dest>
はローカルフォルダまたは親znodeになり、<src>
もスラッシュで終わらない限り、<src> パスの最後の要素が追加されます。 <dest>
は zk:
にすることができます。これは、cp -r
形式を使用してzk状態全体をバックアップ/リストアする場合に役立ちます。ワイルドカードで終わるローカルパスは引用符で囲むか、ローカルパスの末尾をスラッシュにする必要があります。つまり、bin/solr zk cp -r /some/dir/ zk:/ -z localhost:2181
は bin/solr zk cp -r "/some/dir/" zk:/ -z localhost:2181
と同等ですが、bin/solr zk cp -r /some/dir/\
zk:/ -z localhost:2181
はエラーをスローします。
ZK設定のバックアップ/リストアの例を次に示します。
ローカルにコピーするには: bin/solr zk cp -r zk:/ /some/dir -z localhost:2181
ZKにリストアするには: bin/solr zk cp -r /some/dir/ zk:/ -z localhost:2181
file:
プレフィックスは削除されるため、file:/wherever
は絶対ローカルパスを指定し、file:somewhere
は相対ローカルパスを指定します。Zookeeperのすべてのパスは絶対パスです。
Zookeeperノードはデータを持つことができるため、単一のファイルを親znodeに移動すると、親Znodeのデータが上書きされるため、末尾のスラッシュを指定することが重要になる場合があります。
ローカルからコピーする場合、末尾のワイルドカードがサポートされ、引用符で囲む必要があります。
その他の例は次のとおりです。
ディレクトリをローカルからZooKeeperに再帰的にコピーする: bin/solr zk cp -r file:/apache/confgs/whatever/conf zk:/configs/myconf -z 111.222.333.444:2181
単一ファイルをZooKeeperからローカルにコピーする: bin/solr zk cp zk:/configs/myconf/managed_schema /configs/myconf/managed_schema -z 111.222.333.444:2181
ZooKeeperからznodeを削除する
ZooKeeperからznode(およびオプションですべての子ノード)を削除するには、zk rm
コマンドを使用します。
ZK削除パラメータ
-r
-
オプション
デフォルト:なし
<path>
がディレクトリの場合、再帰的に削除します。<path>
に子がいて、-r
が指定されていない場合、コマンドは失敗します。例:
-r
<path>
-
必須
デフォルト:なし
ZooKeeperから削除するパス。親ノードまたはリーフノードです。
安全チェックは限られています。
/
または/zookeeper
ノードを削除することはできません。パスはZooKeeperノードであると見なされます。
zk:
プレフィックスは必要ありません。例:
-
/configs
-
/configs/myconfigset
-
/configs/myconfigset/solrconfig.xml
-
-z <zkHost>
-
必須
デフォルト:なし
ZooKeeper接続文字列。
solr.in.sh
またはsolr.in.cmd
でZK_HOST
が定義されている場合はオプションです。例:
-z 123.321.23.43:2181
パラメータを指定したこのコマンドの例は次のとおりです。
bin/solr zk rm -r /configs
bin/solr zk rm /configs/myconfigset/schema.xml
ZooKeeper znodeを別のznodeに移動する(名前変更)
ZooKeeper znodeを移動(名前変更)するには、zk mv
コマンドを使用します。
ZK移動パラメータ
<src>
-
必須
デフォルト:なし
名前を変更するznode。
zk:
プレフィックスが想定されています。例:
/configs/oldconfigset
<dest>
-
必須
デフォルト:なし
znodeの新しい名前。
zk:
プレフィックスが想定されています。例:
/configs/newconfigset
-z <zkHost>
-
必須
デフォルト:なし
ZooKeeper接続文字列。
solr.in.sh
またはsolr.in.cmd
でZK_HOST
が定義されている場合は不要です。例:
-z 123.321.23.43:2181
このコマンドの例は次のとおりです。
bin/solr zk mv /configs/oldconfigset /configs/newconfigset
ZooKeeper znodeの子を一覧表示する
znodeの子を表示するには、zk ls
コマンドを使用します。
ZKリストパラメータ
-r
-
オプション
デフォルト:なし
znodeのすべての子孫を再帰的に一覧表示します。データではなく、ノード名のみが一覧表示されます。
例:
-r
<path>
-
必須
デフォルト:なし
一覧表示するZooKeeperのパス。
例:
/collections/mycollection
-z <zkHost>
-
必須
デフォルト:なし
ZooKeeper接続文字列。
solr.in.sh
またはsolr.in.cmd
でZK_HOST
が定義されている場合はオプションです。例:
-z 123.321.23.43:2181
パラメータを指定したこのコマンドの例は次のとおりです。
bin/solr zk ls -r /collections/mycollection
bin/solr zk ls /collections
znodeを作成する(chrootをサポート)
データのないznodeを作成するには、zk mkroot
コマンドを使用します。このコマンドの主なユースケースは、ZooKeeperの「chroot」概念をサポートすることです。ただし、任意のパスを作成するためにも使用できます。
znodeの作成パラメータ
<path>
-
必須
デフォルト:なし
作成するZooKeeperのパス。必要に応じて、中間znodeが作成されます。存在しない場合は、先頭にスラッシュが想定されます。
例:
/solr
-z <zkHost>
-
必須
デフォルト:なし
ZooKeeper接続文字列。
solr.in.sh
またはsolr.in.cmd
でZK_HOST
が定義されている場合はオプションです。例:
-z 123.321.23.43:2181
このコマンドの例
bin/solr zk mkroot /solr -z 123.321.23.43:2181
bin/solr zk mkroot /solr/production
エクスポートとインポート
ドキュメントをファイルにエクスポートする
export
コマンドを使用すると、コレクション内のドキュメントをJSON、Lines付きJSON、またはJavabin形式でエクスポートできます。すべてのドキュメントをエクスポートすることも、クエリに一致するドキュメントのみをエクスポートすることもできます。
これはネストされた子ドキュメントではテストされておらず、結果は異なる場合があります。 |
export コマンドは、クラウドモードで実行されているSolrでのみ機能します。 |
bin/solr export [オプション]
bin/solr export -help
bin/solr export
コマンドは、次のパラメータを取ります。
-url <URL>
-
必須
デフォルト:なし
コレクションの完全修飾アドレス。
-format <フォーマット>
-
オプション
デフォルト:
json
エクスポートのファイル形式。
json
、jsonl
、またはjavabin
。javabin
を選択すると、ネイティブのSolr形式でエクスポートされ、コンパクトでインポートが高速になります。jsonl
はJson with Lines形式です。詳細はhttps://jsonlines.org/をご覧ください。 -out <パス>
-
オプション
デフォルト: *説明を参照*
エクスポートされたデータを書き込むディレクトリのパス、または書き出す特定のファイルのいずれかです。
ディレクトリのみが指定されている場合、ファイルは
<collection>.json
のようにコレクションの名前で作成されます。 -compress
-
オプション
デフォルト: false
-compress
を指定すると、結果の出力ファイルは<collection>.json.gz
のようにgzip圧縮されます。 -query <クエリ文字列>
-
オプション
デフォルト:
*:*
カスタムクエリ。デフォルトは
*:*
で、すべてのドキュメントがエクスポートされます。 -fields <フィールド>
-
オプション
デフォルト:なし
エクスポートするフィールドのカンマ区切りリスト。デフォルトでは、すべてのフィールドがフェッチされます。
-limit <ドキュメント数>
-
オプション
デフォルト:
100
ダウンロードするドキュメントの最大数。値
-1
はすべてのドキュメントをエクスポートします。
例
コレクションgettingstarted
からすべてのドキュメントをエクスポートします。
bin/solr export -url https://127.0.0.1:8983/solr/gettingstarted limit -1
gettingstarted
コレクションのすべてのドキュメントを、圧縮された JSON ファイルとして 1MDocs.json.gz
という名前のファイルにエクスポートします。
bin/solr export -url https://127.0.0.1:8983/solr/gettingstarted -1 -format json -compress -out 1MDocs
コレクションへのドキュメントのインポート
ドキュメントをファイルにエクスポートしたら、/update リクエストハンドラーを使用して、それらを新しい Solr コレクションにインポートできます。
例: json
ファイルのインポート
最初にドキュメントをエクスポートします。エクスポートするフィールドを指定することで、copyField
によって設定されるフィールドは無視するようにしてください。
$ bin/solr export -url https://127.0.0.1:8983/solr/gettingstarted -fields id,name,manu,cat,features
エクスポートされたドキュメントをインポートするための新しいコレクションを作成します。
$ bin/solr create_collection -c test_collection -n techproducts
次に、以下のいずれかの方法でデータをインポートします。
$ curl -X POST -d @gettingstarted.json 'https://127.0.0.1:8983/solr/test_collection/update/json/docs?commit=true'
または
$ curl -H 'Content-Type: application/json' -X POST -d @gettingstarted.json 'https://127.0.0.1:8983/solr/test_collection/update?commit=true'
例: javabin
ファイルのインポート
$ bin/solr export -url https://127.0.0.1:8983/solr/gettingstarted -format javabin -fields id,name,manu,cat,features
$ curl -X POST --header "Content-Type: application/javabin" --data-binary @gettingstarted.javabin 'https://127.0.0.1:8983/solr/test_collection/update?commit=true'
API との対話
api
コマンドを使用すると、Solr API エンドポイントに任意の HTTP リクエストを送信できます。
bin/solr api -help
bin/solr api
コマンドは、以下のパラメーターを取ります。
-get <url>
-
必須
デフォルト:なし
Solr API エンドポイントに GET リクエストを送信します。
例:
bin/solr api -get https://127.0.0.1:8983/solr/COLL_NAME/sql?stmt=select+id+from+COLL_NAME+limit+10
API
api
コマンドを使用すると、Solr API エンドポイントに任意の HTTP リクエストを送信できます。Solr で basicAuth または TLS を設定している場合、curl
のような別のツールを使用するよりも、こちらの方が簡単かもしれません。
$ bin/solr api api -get https://127.0.0.1:8983/solr/techproducts/select?q=*:*
techproducts /sql エンドポイントに SQL クエリを送信する例を次に示します(Solr が SQL モジュールを有効にしてクラウドモードで起動されていることを前提としています)。
$ bin/solr api api -get https://127.0.0.1:8983/solr/techproducts/sql?stmt=select+id+from+techproducts+limit+10
結果は端末にストリーミングされます。