8. Solrのアップデート¶
IM-ContentsSearch やベクトルデータベースとして利用している Solr のアップデート方法について説明します。
項目
8.1. 概要¶
Solr のアップデートが必要な場合、通常のアップデート方法 を確認してください。なお、アップデートする前のバージョンによってはアップデート方法が異なる可能性があるので、バージョン固有のアップデート手順 も合わせて確認してください。注意
アップデート作業前には、必ず Solr のデータおよび設定ファイルのバックアップを取得してください。アップデート中に何らかの問題が発生した場合、元の環境に復旧するために必要です。
8.2. 通常のアップデート方法¶
以下の手順で Solr のアップデートを実施してください。
バックアップの取得
アップデート作業を開始する前に、必ずバックアップを取得してください。バックアップ方法の詳細は「Solrのバックアップ」を参照してください。既存の Solr インストールディレクトリの削除
現在動作している Solr を停止し、Solr を動作している Web Application Server(Jetty、Resin、Tomcat)をセットアップしたディレクトリを削除します。新しいバージョンの Solr のダウンロードとセットアップ
プロダクトファイルダウンロード から新しいバージョンの Solr をダウンロードし、「Solrのセットアップ」の手順に従ってセットアップを実施してください。インデックスデータの再登録
Solr の再セットアップ後、検索インデックス(データ)の再登録が必要です。a. IM-ContentsSearch を利用している場合
IM-ContentsSearch の全文検索機能を利用するためには、「インデックスの作成(索引作成)」が必要です。詳細については、「IM-ContentsSearch プログラミングガイド」-「検索対象の作成・登録・削除」を参照してください。コラム
IM-ContentsSearch では、インデックスを再作成するためのジョブも用意しています。「ジョブ・ジョブネットリファレンス」-「再作成クローリング」を参照してください。b. ベクトルデータベースとして Solr を利用している場合
ベクトルデータの再登録が必要です。ユーザが利用しているアシスタントの種類に応じて、ベクトルデータの再登録を実施してください。コラム
各種製品で利用できるアシスタントについては、以下のジョブを利用することで、ベクトルデータの再登録が可能です。IM-Wiki Copilot をご利用の場合「ジョブ・ジョブネットリファレンス」- 「Wiki アシスタント同期」を参照してください。ViewCreator SQLビルダ アシスタント をご利用の場合「ジョブ・ジョブネットリファレンス」-「テーブルメタデータ同期+ベクトルデータベース登録(シェアードデータベース)」を参照してください。注意
生成AIサービスの利用料金についてベクトルデータの生成には、生成AIサービスの利用料金が発生します。大量のデータがある場合は、コストを事前に見積もってから実施してください。注意
データの再登録やインデックス再作成には時間がかかる場合があります。本番環境でのアップデートは、メンテナンス時間を十分に確保して実施することを推奨します。
8.3. バージョン固有のアップデート手順¶
8.3.1. 2024 Autumn(Jasmine) ~ 2025 Spring(Kamille) の環境からアップデートする場合¶
2024 Autumn(Jasmine) ~ 2025 Spring(Kamille) の環境からアップデートする場合は、設定ファイルを変更して再起動するだけで対応可能です。この方法では、データの再登録が不要でコストを抑えたアップデートが可能です。コラム
Solr をベクトルデータベースとして利用していない場合は、本手順は不要です。コラム
2026 Autumn(Nemesia) 以降へアップデートする場合、「方法2:既存の schema.xml にフィールドを直接追加する」で対応するときは、本手順に続けて「2025 Autumn(Lilac) ~ 2026 Spring(Mimosa) の環境からアップデートする場合」の手順も実施してください。「方法1:schema.xml を差し替える」で対応する場合は、差し替え後の<schema.xml>に 2026 Autumn(Nemesia) で追加されたフィールドも含まれているため、追加の対応は不要です。
Solr の停止
現在動作している Solr を停止してください。
Windowsの場合
C:\solr\bin> solr.cmd stop -p %PORT%Linuxの場合
/usr/local/solr/bin/solr stop -p %PORT%設定ファイル(schema.xml)の変更
ベクトルデータベース用のコア(default_vector)のスキーマ定義ファイルに、新しいフィールドを追加します。以下のいずれかの方法で対応してください。修正対象ファイル:
solr\server\solr\default_vector\conf\schema.xml solr\server\solr\configsets\_iapdefault_vector\conf\schema.xmlコラム
_iapdefault_vector コンフィグセットを指定して独自に追加したコアがある場合は、そのコアの<schema.xml>(%SOLR_HOME%/server/solr/%コア名%/conf/schema.xml)にも同様の変更が必要です。方法1:schema.xml を差し替える
プロダクトファイルダウンロード から新しいバージョンの Solr をダウンロードし提供された<schema.xml>で既存のファイルを差し替えます。注意
<schema.xml>は英語・中国語用トークナイザのカスタマイズが前提のため、カスタマイズ済みの場合は差し替え後、カスタマイズ箇所を手動で再適用する必要があります。方法2:既存の schema.xml にフィールドを直接追加する
既存の<schema.xml>ファイルに以下のフィールドを追加します。追加するフィールド:
<field name="origin_source_id" type="string" indexed="true" stored="true" />追加位置の例:
<fields> <!-- basic fields --> <field name="id" type="string" indexed="true" stored="true" required="true" /> <field name="_version_" type="plong" indexed="false" stored="false" /> <field name="category" type="string" indexed="true" stored="true" required="true" /> <field name="vector" type="knn_vector" indexed="true" stored="true"/> <field name="text_ja" type="text_ja" indexed="true" stored="true" /> <field name="text_en" type="text_en" indexed="true" stored="true" /> <field name="text_zh_cn" type="text_zh_cn" indexed="true" stored="true" /> <field name="metadata" type="string" stored="true" /> <!-- 下記を追加 --> <field name="origin_source_id" type="string" indexed="true" stored="true" /> </fields>Solr の再起動
設定ファイルの変更完了後、Solr を再起動してください。
Windowsの場合
C:\solr\bin> solr.cmd startLinuxの場合
/usr/local/solr/bin/solr start動作確認
管理画面にアクセスし、正常に動作することを確認してください。http://<HOST>:<PORT>/solr/#/「default_vector」コアが表示され、以下より追加したフィールド(origin_source_id)が存在することを確認してください。http://<HOST>:<PORT>/solr/#/default_vector/schema
8.3.2. 2025 Autumn(Lilac) ~ 2026 Spring(Mimosa) の環境からアップデートする場合¶
2025 Autumn(Lilac) ~ 2026 Spring(Mimosa) の環境からアップデートする場合は、設定ファイルを変更して再起動するだけで対応可能です。この方法では、データの再登録が不要でコストを抑えたアップデートが可能です。コラム
Solr をベクトルデータベースとして利用していない場合は、本手順は不要です。コラム
2024 Autumn(Jasmine) ~ 2025 Spring(Kamille) の環境からアップデートする場合は、先に「2024 Autumn(Jasmine) ~ 2025 Spring(Kamille) の環境からアップデートする場合」の手順を実施してください。
Solr の停止
現在動作している Solr を停止してください。
Windowsの場合
C:\solr\bin> solr.cmd stop -p %PORT%Linuxの場合
/usr/local/solr/bin/solr stop -p %PORT%設定ファイル(schema.xml)の変更
ベクトルデータベース用のコア(default_vector)のスキーマ定義ファイルに、次元数ごとのベクトルフィールドと、インデックス付きメタデータ用の動的フィールドを追加します。次元数ごとのベクトルフィールドは、1536 次元以外の埋め込みベクトルを出力するモデルを利用するために必要です。インデックス付きメタデータ用の動的フィールドは、メタデータによる絞り込み検索を利用するために必要です。以下のいずれかの方法で対応してください。修正対象ファイル:
solr\server\solr\default_vector\conf\schema.xml solr\server\solr\configsets\_iapdefault_vector\conf\schema.xmlコラム
_iapdefault_vector コンフィグセットを指定して独自に追加したコアがある場合は、そのコアの<schema.xml>(%SOLR_HOME%/server/solr/%コア名%/conf/schema.xml)にも同様の変更が必要です。方法1:schema.xml を差し替える
プロダクトファイルダウンロード から新しいバージョンの Solr をダウンロードし提供された<schema.xml>で既存のファイルを差し替えます。注意
<schema.xml>は英語・中国語用トークナイザのカスタマイズが前提のため、カスタマイズ済みの場合は差し替え後、カスタマイズ箇所を手動で再適用する必要があります。方法2:既存の schema.xml にフィールドタイプとフィールドを直接追加する
既存の<schema.xml>ファイルに以下のフィールドタイプとフィールドを追加します。追加するフィールドタイプ(<types> 内):
<fieldType name="knn_vector_128" class="solr.DenseVectorField" vectorDimension="128" similarityFunction="euclidean"/> <fieldType name="knn_vector_256" class="solr.DenseVectorField" vectorDimension="256" similarityFunction="euclidean"/> <fieldType name="knn_vector_512" class="solr.DenseVectorField" vectorDimension="512" similarityFunction="euclidean"/> <fieldType name="knn_vector_768" class="solr.DenseVectorField" vectorDimension="768" similarityFunction="euclidean"/> <fieldType name="knn_vector_1024" class="solr.DenseVectorField" vectorDimension="1024" similarityFunction="euclidean"/> <fieldType name="knn_vector_2048" class="solr.DenseVectorField" vectorDimension="2048" similarityFunction="euclidean"/> <fieldType name="knn_vector_3072" class="solr.DenseVectorField" vectorDimension="3072" similarityFunction="euclidean"/> <fieldType name="pdouble" class="solr.DoublePointField" docValues="true"/> <fieldType name="boolean" class="solr.BoolField" sortMissingLast="true"/>追加するフィールド(<fields> 内):
<field name="vector_128" type="knn_vector_128" indexed="true" stored="true"/> <field name="vector_256" type="knn_vector_256" indexed="true" stored="true"/> <field name="vector_512" type="knn_vector_512" indexed="true" stored="true"/> <field name="vector_768" type="knn_vector_768" indexed="true" stored="true"/> <field name="vector_1024" type="knn_vector_1024" indexed="true" stored="true"/> <field name="vector_2048" type="knn_vector_2048" indexed="true" stored="true"/> <field name="vector_3072" type="knn_vector_3072" indexed="true" stored="true"/> <!-- インデックス付きメタデータ(indexedMetadata)用の動的フィールド --> <dynamicField name="*_meta_txt" type="string" indexed="true" stored="true" multiValued="true"/> <dynamicField name="*_meta_l" type="plong" indexed="true" stored="true" multiValued="true"/> <dynamicField name="*_meta_d" type="pdouble" indexed="true" stored="true" multiValued="true"/> <dynamicField name="*_meta_b" type="boolean" indexed="true" stored="true" multiValued="true"/>追加位置の例:
<types> <fieldType name="knn_vector" class="solr.DenseVectorField" vectorDimension="1536" similarityFunction="euclidean"/> <!-- 下記を追加 --> <fieldType name="knn_vector_128" class="solr.DenseVectorField" vectorDimension="128" similarityFunction="euclidean"/> <fieldType name="knn_vector_256" class="solr.DenseVectorField" vectorDimension="256" similarityFunction="euclidean"/> <fieldType name="knn_vector_512" class="solr.DenseVectorField" vectorDimension="512" similarityFunction="euclidean"/> <fieldType name="knn_vector_768" class="solr.DenseVectorField" vectorDimension="768" similarityFunction="euclidean"/> <fieldType name="knn_vector_1024" class="solr.DenseVectorField" vectorDimension="1024" similarityFunction="euclidean"/> <fieldType name="knn_vector_2048" class="solr.DenseVectorField" vectorDimension="2048" similarityFunction="euclidean"/> <fieldType name="knn_vector_3072" class="solr.DenseVectorField" vectorDimension="3072" similarityFunction="euclidean"/> <!-- ここまで --> <fieldType name="string" class="solr.StrField" sortMissingLast="true" docValues="true" /> <fieldType name="plong" class="solr.LongPointField" docValues="true" /> <!-- 下記を追加 --> <fieldType name="pdouble" class="solr.DoublePointField" docValues="true"/> <fieldType name="boolean" class="solr.BoolField" sortMissingLast="true"/> <!-- ここまで --> ... </types> <fields> <!-- basic fields --> <field name="id" type="string" indexed="true" stored="true" required="true" /> <field name="_version_" type="plong" indexed="false" stored="false" /> <field name="category" type="string" indexed="true" stored="true" required="true" /> <field name="vector" type="knn_vector" indexed="true" stored="true"/> <!-- 下記を追加 --> <field name="vector_128" type="knn_vector_128" indexed="true" stored="true"/> <field name="vector_256" type="knn_vector_256" indexed="true" stored="true"/> <field name="vector_512" type="knn_vector_512" indexed="true" stored="true"/> <field name="vector_768" type="knn_vector_768" indexed="true" stored="true"/> <field name="vector_1024" type="knn_vector_1024" indexed="true" stored="true"/> <field name="vector_2048" type="knn_vector_2048" indexed="true" stored="true"/> <field name="vector_3072" type="knn_vector_3072" indexed="true" stored="true"/> <!-- ここまで --> <field name="text_ja" type="text_ja" indexed="true" stored="true" /> <field name="text_en" type="text_en" indexed="true" stored="true" /> <field name="text_zh_cn" type="text_zh_cn" indexed="true" stored="true" /> <field name="metadata" type="string" stored="true" /> <field name="origin_source_id" type="string" indexed="true" stored="true" /> <!-- 下記を追加 --> <!-- インデックス付きメタデータ(indexedMetadata)用の動的フィールド --> <dynamicField name="*_meta_txt" type="string" indexed="true" stored="true" multiValued="true"/> <dynamicField name="*_meta_l" type="plong" indexed="true" stored="true" multiValued="true"/> <dynamicField name="*_meta_d" type="pdouble" indexed="true" stored="true" multiValued="true"/> <dynamicField name="*_meta_b" type="boolean" indexed="true" stored="true" multiValued="true"/> <!-- ここまで --> </fields>Solr の再起動
設定ファイルの変更完了後、Solr を再起動してください。
Windowsの場合
C:\solr\bin> solr.cmd startLinuxの場合
/usr/local/solr/bin/solr start動作確認
管理画面にアクセスし、正常に動作することを確認してください。http://<HOST>:<PORT>/solr/#/「default_vector」コアが表示され、以下より追加したフィールド(vector_128 ~ vector_3072)および動的フィールド(*_meta_txt、*_meta_l、*_meta_d、*_meta_b)が存在することを確認してください。http://<HOST>:<PORT>/solr/#/default_vector/schema