Ping

コア名の下にある「Ping」を選択すると、コアが稼働していてリクエストに応答しているかどうかを確認するために `ping` リクエストが発行されます。

image
図1. コアドロップダウンのPingオプション

Pingによって実行される検索は、リクエストパラメータAPIで設定されます。 `/admin/ping` エンドポイントに使用するパラメータセットについては、暗黙的リクエストハンドラを参照してください。

「Ping」オプションはページを開きませんが、リクエストの状態は、コレクション名をクリックしたときに表示されるコア概要ページで確認できます。リクエストに要した時間は、Pingオプションの横にミリ秒単位で表示されます。

Ping APIの例

UI画面ではpingの応答時間を簡単に確認できますが、基盤となるpingコマンドは、リモート監視ツールによって実行された場合に、より役立ちます。

入力

https://127.0.0.1:8983/solr/<core-name>/admin/ping

このコマンドは、レスポンスを求めてコア名にpingを実行します。

入力

https://127.0.0.1:8983/solr/<collection-name>/admin/ping?distrib=true&wt=xml

このコマンドは、レスポンスを求めて、指定されたコレクション名のすべてのレプリカにpingを実行します。

出力例

<response>
   <lst name="responseHeader">
      <int name="status">0</int>
      <int name="QTime">13</int>
      <lst name="params">
         <str name="q">{!lucene}*:*</str>
         <str name="distrib">false</str>
         <str name="df">_text_</str>
         <str name="rows">10</str>
         <str name="echoParams">all</str>
      </lst>
   </lst>
   <str name="status">OK</str>
</response>

どちらのAPI呼び出しも同じ出力を持ちます。 status=OK は、ノードが応答していることを示します。

SolrPingを使用したSolrJの例

SolrPing ping = new SolrPing();
ping.getParams().add("distrib", "true"); //To make it a distributed request against a collection
rsp = ping.process(solrClient, collectionName);
int status = rsp.getStatus();

SolrClientを使用したSolrJの例

SolrClient client = new HttpSolrClient.Builder(solrUrl).build();
SolrPingResponse pingResponse = client.ping(collectionName);
int status = pingResponse.getStatus();