Solr 8.9.0でSolr APIを使用してSolrコアを作成できませんでした

トピック作成者:ks-solruserml-bot (2024/06/09 20:38 投稿)
2
CloseClose

(The bot translated the original post https://lists.apache.org/thread/bxwjdvtlsmnyrjhmk3dn8r93os2kmw1k into Japanese and reposted it under Apache License 2.0. The copyright of posted content is held by the original poster.)

こんにちは皆さん、

お願いがあります。Solrコアの作成で行き詰まっています。特定のバージョンのJettyサーバーを使用して、Solrをスタンドアロンアプリケーションとして実行したいため、以下の手順に従ってSolr warファイルを作成しました:
https://gist.github.com/fschiettecatte/836d13be0c95f1fd159e45d3af861952

Warファイルを作成した後、以下のコマンドを実行してJetty経由でSolrを正常に起動しました:

$ java -Djetty.home=/var/solr -Djetty.base=/var/solr -Dsolr.solr.home=/var/solr/solr -Dsolr.log.dir=/var/solr/solr -Dbootstrap_confdir=/var/solr/solr/conf -Dcollection.configName=conf -DzkRun -Djava.util.logging.config.file=/var/solr/solr/solr-log.properties -jar /var/solr/start.jar

Solrは正常に動作しています。いくつかのコマンドを実行して確認しました:

$ curl "http://0.0.0.0:8983/solr/admin/collections?action=clusterstatus&wt=xml"
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <lst name="responseHeader">
        <int name="status">0</int>
        <int name="QTime">19</int>
    </lst>
    <lst name="cluster">
        <lst name="collections"/>
        <arr name="live_nodes">
            <str>192.168.1.2:8983_solr</str>
        </arr>
    </lst>
</response>

ただし、コアの作成を試みると、以下のエラーが発生します。このコマンドを実行する前に、Solrホームディレクトリ "/var/solr/solr/cores" に "a10" という名前のフォルダを作成しました:

$ curl "http://0.0.0.0:8983/solr/admin/cores?action=CREATE&name=a10&instanceDir=cores/a10&shard=shard10&collection=conf1&coreNodeName=a10&wt=xml"
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <lst name="responseHeader">
        <int name="status">400</int>
        <int name="QTime">10067</int>
    </lst>
    <lst name="error">
        <lst name="metadata">
            <str name="error-class">org.apache.solr.common.SolrException</str>
            <str name="root-error-class">org.apache.solr.cloud.ZkController$NotInClusterStateException</str>
        </lst>
        <str name="msg">Error CREATEing SolrCore 'a10': coreNodeName a10 does not exist in shard shard10, ignore the exception if the replica was deleted</str>
        <int name="code">400</int>
    </lst>
</response>

よろしくお願いします。
Ravi

返信投稿者:ks-solruserml-bot (2024/06/09 20:38 投稿)

おそらく、クラスター関連のAPIを使用して単独のSolrノードを制御しようとしていますが、実際には単一ノードの独立したSolrインスタンスを使用する場合は、それに適したAPIを使用する必要があります。

ドキュメント全体がこれらの2つのモードを分離しています。

よろしくお願いします。
Andreas

返信投稿者:ks-solruserml-bot (2024/06/09 20:38 投稿)

これは、Solrがクラウドモード(ZooKeeperに接続されている)で実行されていることを示しています。これはCollections APIへの呼び出しであり、これはクラウドモードでのみ機能します。クラウドモードでない場合にこのURLパスを試みた場合、Solrは次のように返します:

<response>
  <lst name="responseHeader">
    <int name="status">400</int>
    <int name="QTime">27</int>
  </lst>
  <lst name="error">
    <lst name="metadata">
      <str name="error-class">org.apache.solr.common.SolrException</str>
      <str name="root-error-class">org.apache.solr.common.SolrException</str>
    </lst>
    <str name="msg">Solr インスタンスは SolrCloud モードでは実行されていません。</str>
    <int name="code">400</int>
  </lst>
</response>

ここで使用しているCoreAdmin APIは、クラウドモードの場合には使用しないでください。専門家であっても、これを正常に使用することはできません。このAPIはクラウドに対応していないため、コアを作成する前後にクラスター状態に必要な変更が行われません。たとえCoreAdmin APIの呼び出しが成功したとしてもです。Collections APIを使用し、CoreAdminを使用しないでください。Collections APIの利点の1つは、クラウドモードでAPIを呼び出す際にディレクトリを作成する必要がないことです。Solrが代わりにそれらを作成します。

ありがとうございます。
Shawn

トピックへ返信するには、ログインが必要です。

KandaSearch

Copyright © 2006-2024 RONDHUIT Co, Ltd. All Rights Reserved.

投稿の削除

この投稿を削除します。よろしいですか?