dsetoolを使用したSolrコアの再読み込み
schema.xmlまたはsolrconfig.xmlを変更するか、 リソース・ファイル(synonymファイルなど)をアップロードした後で、Solrコアを新規作成するのではなく、再度読み込みます。
schema.xmlまたはsolrconfig.xmlを変更するか、 リソース・ファイル(synonymファイルなど)をアップロードした後で、Solrコアを新規作成するのではなく、再度読み込みます。
Solrコードの再読み込みを簡素化するには、dsetool reload_core
を使用します。コマンドの構文は以下のとおりです。
$ dsetool reload_core keyspace.table [option ...]
オプション | 設定 | デフォルト | 説明 |
---|---|---|---|
schema= | filepath | なし | スキーマ・ファイルのパス |
solrconfig= | filepath | なし | solrconfig.xmlファイルのパス |
distributed= | trueまたはfalse | true |
|
reindex= | trueまたはfalse | false |
|
deleteAll= | trueまたはfalse | false |
|
これらのオプションは、いずれも必須ではありません。schema.xmlまたはsolrconfig.xmlあるいは両方が提供される場合、DataStax Enterpriseはそれらのファイルをアップロードしてから、コアを再度読み込みます。これらのオプションについては、「自動リソース生成によるコアの作成」で説明してありますが、dsetoolコマンドまたはHTTP RELOAD要求と同じ方法で使用します。
スキーマを変更すると、既存のインデックスと新しいスキーマの互換性が不確実になります。スキーマを変更することにより、フィールドのタイプが変更される場合、インデックスとスキーマの互換性は損なわれます。フィールドのタイプの変更は、ごくわずかで、schema.xmlファイル自体は変更されないこともあります。たとえば、その他の構成ファイル(synonymsなど)に変更を加えると、スキーマが変わってしまうことがあります。そのような非互換性が存在する場合、Solrデータのインデックスを全面的に再作成することが必要になります。これには、古いデータをすべて削除することも含まれます。これらの場合には、インデックスを全面的に再作成しないと、スキーマの変更が効果を発揮しません。通常は、Solrスキーマに変更を加えると、インデックスを全面的に再作成する必要が生じます。
その場でインデックスを再作成する
reindex=true
およびdeleteAll=false
を設定すると、データのインデックスが再作成され、既存のLuceneインデックスが維持されます。アップロード処理中であると、ユーザーは不正確な結果を検索することになります。インデックスの再作成をその場で実行するには、以下の構文を使用します。dsetool reload_core keyspace.table reindex=true deleteAll=false
インデックスを全部再作成する
reindex=true
およびdeleteAll=true
を設定すると、Luceneインデックスが削除され、データセットのインデックスが再作成されます。ユーザー検索を実行しても、初回は何もドキュメントが返されないか、一部のドキュメントのみが返されます。これは、Solrコアが再度読み込まれ、データのインデックスが再作成されるからです。dsetool reload_core keyspace.table reindex=true deleteAll=true
インデックス作成のステータスを確認する
Solr Adminを使用して、インデックス作成のステータスを確認します。