REINDEXCOLLECTIONは未知のフィールドです。

トピック作成者:ks-solruserml-bot (2024/05/23 12:49 投稿)
4
CloseClose

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

こんにちは、

最近の質問について申し訳ありません。

https://solr.apache.org/guide/8_0/reindexing.html に従って、多くのフィールドを削除しようとしています。その後、新しいスキーマで新しいコレクションを作成し、古いものから新しいものへの再インデックスを試みています。
合計で約216のフィールドが削除されます...

しかし、REINDEXが失敗してしまいました。なぜなら、そのフィールドが削除されたからです:

2:52:31.508 [DaemonStream-at-uk-003-12889-thread-1-processing-n:solr-0.search-solr.svc.cluster.local:80_solr x:at-uk-002_shard1_replica_n1 c:at-uk-002 s:shard1 r:core_node2] ERROR org.apache.solr.client.solrj.io.stream.DaemonStream - DaemonStreamで致命的なエラーが発生しました: at-uk-003
org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException: http://solr-0.search-solr.svc.cluster.local:80/solr/at-uk-003 からのサーバーエラー: エラー: [doc=PVc175f0f12f8f43789a7c1863e10229cd] 不明なフィールド 'OEM_ENGINE_MARKETING'

このフィールドは単純に無視されるべきですよね?

REINDEXCOLLECTIONを使用して、フィールドが削除された状態でデータを別のコレクションに再インデックスする方法は見当たりません。

何かご意見があればお知らせください。
Auto Trader Limited Registered Office: 1 Tony Wilson Place, Manchester, Lancashire, M15 4FN(England No. 03909628で登録)。Auto Trader LimitedはAuto Trader Group Plcグループの一部です。この電子メールと添付ファイルは機密情報であり、法的特権があります。これは、送信先の個人またはエンティティのみが使用することを意図しています。誤ってこの電子メールを受信した場合は、送信者に通知してください。この電子メールメッセージは、コンピュータウイルスの存在を検出するためにスキャンされました。

返信投稿者:ks-solruserml-bot (2024/05/23 12:49 投稿)

https://solr.apache.org/guide/8_8/collection-management.html#reindexcollection

「fl」パラメータを参照してください。

〜 David Smiley
Apache Lucene/Solr 検索開発者
http://www.linkedin.com/in/davidwsmiley

返信投稿者:ks-solruserml-bot (2024/05/23 12:49 投稿)

このフィールドは単純に無視されるべきですよね?

Solrがそれを無視する理由はないでしょう。インデックスを作成しようとしている場合、インデクサーを変更してこれらのフィールドを削除できませんか?Solrは命令に従おうとします。もし悪いことをするように指示された場合、単に失敗します。エラーや不良なインデックスを無視してほしくありません。

返信投稿者:ks-solruserml-bot (2024/05/23 12:50 投稿)

したがって、文脈として、コレクション1には900以上のフィールドがあり、スキーマから約250のフィールドを削除し、コレクション2に再インデックスしたいと考えています。フィールドを簡単に削除して再インデックスするプロセスを実現しようとしており、コーディングのオーバーヘッドをできるだけ少なくしたいと考えています。そのため、最初のコレクションからのデフォルトの fl=*:* を単純に使用しました。その前提は、ドキュメントをコレクション2に保存しようとすると、追加のフィールドが単に無視されるということでした。しかし、それはそうではありませんでした。

その後、これを回避するために、今ではコレクション2の schema.xml を読み取り、REINDEXCOLLECTIONに渡す fl を構築しています。これにはコレクション2のスキーマに含まれるフィールドのみが含まれます。これが機能しています。

返信投稿者:ks-solruserml-bot (2024/05/23 12:50 投稿)

興味深いことに、次に遭遇した問題は、fl=750 fields が大きすぎるため、REINDEXCOLLECTIONでPOST/x-url-form-encodedを使用することに切り替えたところ、リクエストは受け入れられますが、その後、静かに失敗します(Solrにログがなく、単に機能しません)。
これは、バックグラウンドでデーモンがGETを使用し、同じURL制限に達しているためだと考えられます(ただし、エラーは無視されています)。

Jettyのmax httpヘッダー長を大幅に増やすことで問題が解決されましたので、これはバグのように感じますか?

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

KandaSearch

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

投稿の削除

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