1

3 年前に同様の質問があったのを見ましたが、1) 既存の q は 3 年前のものであり、2) 別の問題と別のバージョンの Solr があるため、複製しても問題ないと思います。

これが話です。協力者から、既存の Solr コアの「Index」ディレクトリのコピーを受け取りました。独自のコアをローカルにセットアップし、そのインデックスを使用しようとしています。既存のコアは、Solr 4.1.0 インストールからのものでした。(Solr 4.3.1 と Solr 4.1.0 の両方をセットアップしようとしましたが、失敗しました。) Jetty で Solr を実行しています。

何が問題なのですか?さて、デフォルトのサンプル コアの構成ファイル (schema.xml と solrconfig.xml) を、協力者から提供されたものに置き換えます。そして、Jetty を実行します。これにより、新しいインデックス フォルダーが作成されます。その Index フォルダーの内容を削除し、与えられた Index フォルダーの内容をコピーします。

その結果、「セグメント」ファイルが見つからないことを示すエラーが Solr から返されます。そのため、最初の Index フォルダーで作成された 2 つのファイル (segments.gen と segment_1) があることに気付きました。それらを Index フォルダーに残し、他のすべてを置き換えることを試しています。現在、Solr は動作しているように見えますが (ブラウザー インターフェイスは動作しています)、「Num docs: 0」と報告され、*:* クエリの結果は 0 です。

誰にもアイデアはありますか?詳しい情報を教えていただければ幸いです。前もって感謝します。

4

1 に答える 1

2

元のインデックスから使用する必要がsegments.genあります。segments_1協力者にそれらのファイルも提供するよう依頼してください。しかし、共同作業者が index フォルダーのコピーを提供したと述べたので、既にそれらのファイルを持っている必要があります。

segment_1元のインデックス コピーに存在する必要がない場合があることに注意してください。これは、segment_N にすることができます。segment_元のコピーにあるファイルが何であれ、それを新しいインデックスにコピーして、jetty を再起動します。

segments.genファイルのディレクトリ リストが segment_N ファイルを見つけられなかった場合のフォールバックとして、現在の世代 (segments_N の _N) をインデックスに記録します (たとえば、NFS などのファイル システムでは、ディレクトリ リストが古いキャッシュから取得される可能性があります)。

于 2013-06-23T12:01:03.810 に答える