Solr の設定に関する奇妙なエラーメッセージ | KandaSearch Community Support Forum

Solr の設定に関する奇妙なエラーメッセージ

トピック作成者:ks-solruserml-bot (2024/12/28 18:26 投稿)
10
OpenOpen

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

私は新しい Solr インスタンスをセットアップしました(これが初めてではありません)。しかし、bin/solr create を実行した直後に完全に行き詰まりました:

$ bin/solr config --name mysearchindex --solr-url http://localhost:8983 --action set-user-property --property update.autoCreateFields --value false
Failed to parse command-line arguments due to: Unrecognized option: -scheme

使用方法として以下が表示されました:

usage: bin/solr config [-a <ACTION>] -c <NAME> -p <PROP> [-url <HOST>] [-v <VALUE>] [-z <HOST>]

List of options:
-a,--action <ACTION> Config API action, one of: set-property, unset-property, set-user-property,
unset-user-property; default is 'set-property'.
-c,--name <NAME> Name of the collection.
-p,--property <PROP> Name of the Config API property to apply the action to, such as:
'updateHandler.autoSoftCommit.maxTime'.
-url,--solr-url <HOST> Base Solr URL, which can be used to determine the zk-host if that's not known; defaults to:
http://localhost:8983.
-v,--value <VALUE> Set the property to this value; accepts JSON objects and strings.
-z,--zk-host <HOST> Zookeeper connection string; unnecessary if ZK_HOST is defined in solr.in.sh; otherwise,
defaults to localhost:9983.

Please see the Reference Guide for more tools documentation:
https://solr.apache.org/guide/solr/latest/deployment-guide/solr-control-script-reference.html

え?私はオプション「-scheme」を指定していません。では、このエラーメッセージは何について言っているのでしょうか? たとえこのメッセージが間違いだとしても、どこで間違った操作をしたのか分かりません。

CLI パラメータのさまざまなバリエーションも試しました(使用方法の記載に完全に従った場合も含む)が、すべて同じエラーメッセージが返ってきます。

何か見落としているのでしょうか?
よろしくお願いします。

返信投稿者:ks-solruserml-bot (2024/12/28 18:26 投稿)

こんにちは、Robert。

この問題は https://issues.apache.org/jira/browse/SOLR-17457 に非常によく似ているようです。もしかして Solr 9.7 を使用していませんか?

9.7 のコードを調べたところ、このスクリプトはバックグラウンドで -scheme フラグを自動的に追加しているようです。ただし、ヘルプの出力にはこのオプションが表示されていません。これは正しく移行されなかったためです。現在 CLI オプションの移行が進行中で、これがおそらく根本的な原因です。進捗を追跡できるよう、以下のリンクで問題を登録しました:
https://issues.apache.org/jira/browse/SOLR-17459

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

返信投稿者:ks-solruserml-bot (2024/12/28 18:26 投稿)

こんにちは、

迅速な返信ありがとうございます。bin/solr が Bash スクリプトであることを考えていませんでした。問題のある "if" ブロック(990~992行目)を削除(コメントアウト)しました。これでこのエラーは発生しなくなりましたが、今度は認証情報を渡していないというエラーが出るようになりました。

認証のための環境変数は正しく設定されていますし、bin/solr create は問題なく実行できます。それなのにこのエラーが出るのは本当に困ります。

そこで、ローカルマシンに 9.4.0 をインストールすることにします。このバージョンは現在の本番環境で使用しているものです。

Mag.phil. Robert Ehrenleitner, B.Eng.

返信投稿者:ks-solruserml-bot (2024/12/28 18:26 投稿)

認証の問題についても確認してみます。これも CLI の移行に関連する別のバグかもしれません。その場合はお知らせします。また、scheme 引数に関するプルリクエストも作成されました(こちらをご覧ください:https://github.com/apache/solr/pull/2722)。

そこで、ローカルマシンに 9.4.0 をインストールすることにします。このバージョンは現在の本番環境で使用しているものです。

本番環境のバージョンを使用するのは、ニーズを満たすのであれば良い選択だと思います。代わりに Solr 9.6.1 を試すのも一つの方法です。CLI の移行は 9.7 から始まったと認識しています。

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

返信投稿者:ks-solruserml-bot (2024/12/28 18:27 投稿)

こんにちは、

9.4 でも奇妙なエラーが発生します:

$ bin/solr config -c mysearchindex -solrUrl http://localhost:8983 -action set-user-property -property update.autoCreateFields -value false

POSTing request to Config API: http://localhost:8983/mysearchindex/config
{"set-user-property":{"update.autoCreateFields":"false"}}

ERROR: Error from server at http://localhost:8983/mysearchindex/config?wt=javabin&version=2: Expected mime type in [application/octet-stream, application/vnd.apache.solr.javabin] but got text/html. <html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/>
<title>Error 404 Not Found</title>
</head>
<body><h2>HTTP ERROR 404 Not Found</h2>
<table>
<tr><th>URI:</th><td>/mysearchindex/config</td></tr>
<tr><th>STATUS:</th><td>404</td></tr>
<tr><th>MESSAGE:</th><td>Not Found</td></tr>
<tr><th>SERVLET:</th><td>-</td></tr>
</table>

</body>
</html>

なぜ、間違った MIME タイプが設定されているのでしょうか?

Mag.phil. Robert Ehrenleitner, B.Eng.

返信投稿者:ks-solruserml-bot (2024/12/28 18:27 投稿)

間違った MIME タイプは、レスポンスの解析時に発生しています。サーバーは 404 HTML ページ(text/html)を返しており、使用しているクライアントはおそらく JSON または XML レスポンスを期待しているようです。正しい Accept ヘッダーを指定することで解決できるか、あるいはエラーレスポンス全般のバグである可能性があります。

レスポンス(404)に基づくと、mysearchindex という名前のコレクションを作成するのを忘れているのではないかと思います。コレクションが存在するかどうか、もう一度確認していただけますか?

返信投稿者:ks-solruserml-bot (2024/12/28 18:27 投稿)

念のため再確認します:

$ searchIndex=mysearchindex
$ bin/solr create -c $searchIndex
WARNING: Using _default configset with data driven schema functionality. NOT RECOMMENDED for production use.
To turn off: bin/solr config -c mysearchindex -p 8983 -action set-user-property -property update.autoCreateFields -value false

Created new core 'mysearchindex'
$ bin/solr config -c mysearchindex -p 8983 -action set-user-property -property update.autoCreateFields -value false
Neither -zkHost or -solrUrl parameters provided so assuming solrUrl is http://localhost:8983.

POSTing request to Config API: http://localhost:8983/mysearchindex/config
{"set-user-property":{"update.autoCreateFields":"false"}}

ERROR: Error from server at http://localhost:8983/mysearchindex/config?wt=javabin&version=2: Expected mime type in [application/vnd.apache.solr.javabin, application/octet-stream] but got text/html. <html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/>
<title>Error 404 Not Found</title>
</head>
<body><h2>HTTP ERROR 404 Not Found</h2>
<table>
<tr><th>URI:</th><td>/mysearchindex/config</td></tr>
<tr><th>STATUS:</th><td>404</td></tr>
<tr><th>MESSAGE:</th><td>Not Found</td></tr>
<tr><th>SERVLET:</th><td>-</td></tr>
</table>

</body>
</html>

コマンド bin/solr config では、変数 $searchIndex は使用されていません。なぜなら、このコマンド全体は上記の出力からコピーペーストされているからです。

返信投稿者:ks-solruserml-bot (2024/12/28 18:27 投稿)

あなたの言う通りです。このメッセージは誤りがあるようです。V1 APIの場合は/solrのパスプレフィックス、またはV2 APIの場合は/api/collectionsのパスプレフィックスが欠けています。この問題を修正するには、以下のようにカスタムSolr URLを指定すれば解決します:

bin/solr config -c mysearchindex -solrUrl http://localhost:8983/api/collections -action set-user-property -property update.autoCreateFields -value false

上記の方法は9.6.1でテスト済みです。この件についてもチケットを作成します。

返信投稿者:ks-solruserml-bot (2024/12/28 18:28 投稿)

関連があるかもしれません:今気づいたのですが、本番システムでは検索インデックス(コア)はバージョン9.1で作成され、その後9.4にアップグレードされましたが、検索インデックスを再作成していません。そのため、9.4で失敗するそのコマンドを実行したことは一度もありません。

Mag.phil. Robert Ehrenleitner, B.Eng.

返信投稿者:ks-solruserml-bot (2024/12/28 18:28 投稿)

ありがとうございます。これで少し進展しました。

しかし、今度は再び401エラーが発生します。環境変数SOLR_AUTHENTICATION_OPTSは設定されていますが、その値を追加で渡しても解決しません。

Mag.phil. Robert Ehrenleitner, B.Eng.

返信投稿者:ks-solruserml-bot (2024/12/28 18:28 投稿)

わかりました。rm -rfでSolrを完全に削除し、一からやり直したところ、9.4で動作するようになりました。

Mag.phil. Robert Ehrenleitner, B.Eng.

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

KandaSearch

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

投稿の削除

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