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.cmdZK_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.cmdZK_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ユーティリティ(例:stopcreateauthstatusapi)を実行するときにカスタムシステムプロパティを設定するには、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.cmdZK_HOSTを定義している場合(xref:zookeeper-ensemble.adoc#updating-solr-include-files、Solrインクルードファイルの更新>>を参照)、すべてのbin/solrコマンドから-z <zk host string>を省略できます。

SolrCloudモードでSolrを起動するときに、solr.in.sh/solr.in.cmdZK_HOSTを定義せず、-zオプションも指定しない場合、SolrはSolrポート+ 1000でリッスンする組み込みZooKeeperサーバーを起動します。たとえば、Solrがポート8983で実行されている場合、組み込みZooKeeperはポート9983でリッスンします。

ZooKeeper接続文字列でlocalhost:2181/solrなどのchrootを使用する場合は、bin/solrスクリプトを使用してSolrCloudを起動する前に、/solr znodeを作成する必要があります。

これを行うには、以下に概説するmkrootコマンドを使用します。例:bin/solr zk mkroot /solr -z 192.168.1.4:2181

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にあります。

フォアグラウンドで実行するオプション(-f)は、スクリプトがSolrサーバーの起動後に追加のタスクを実行する必要があるため、-eオプションと互換性がありません。

停止

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

システム情報

バージョン

versionコマンドは、現在インストールされているSolrのバージョンを返し、すぐに終了します。

$ bin/solr version
X.Y.0

ステータス

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.cmdZK_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 から削除するかどうか。

設定ディレクトリが他のコレクションで使用されている場合、-deleteConfigtrue として渡しても削除されません。

: 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_HOSTsolr.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.maxDocs100 に設定するには

bin/solr config -c mycollection -p 8983 -action set-property -property updateHandler.autoCommit.maxDocs -value 100

デフォルトの -actionset-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.autoCreateFieldsfalse に設定して、スキーマレスモードを無効にするには

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-propertyunset-propertyset-user-propertyunset-user-property のいずれかです。

-property <name>

必須

デフォルト:なし

アクションを適用する Config API プロパティの名前。例: 'updateHandler.autoSoftCommit.maxTime'。

-value <new-value>

オプション

デフォルト:なし

プロパティをこの値に設定します。JSON オブジェクトと文字列を受け入れます。

-z <zkHost> または -zkHost <zkHost>

オプション

デフォルト: localhost:9983

ZooKeeper 接続文字列。SolrCloud モードで使用できます。 ZK_HOSTsolr.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.cmdZK_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.cmdZK_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.cmdZK_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:2181bin/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.cmdZK_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.cmdZK_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.cmdZK_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.cmdZK_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

エクスポートのファイル形式。jsonjsonl、またはjavabinjavabinを選択すると、ネイティブの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 リクエストを送信します。

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

結果は端末にストリーミングされます。