intra-mart Accel Platform Solr管理者ガイド 第11版 2026-10-01

7. Solrのベクトル検索機能の利用

ここでは Solr をベクトルデータベースとして利用する手順について紹介します。
intra-mart Accel Platform では、IM-Copilot for Accel Platform が提供する生成AI活用基盤を使用して Solr をベクトルデータベースとして利用できます。
IM-Copilot for Accel Platform の利用方法については、「IM-Copilot 利用ガイド」を参照してください。

コラム

Solr はバージョン 9.0 からベクトル検索機能をサポートしています。
ベクトル検索機能についての詳しい情報は、Apache Software Foundation の Web サイトでご確認ください。

7.1. 前提条件

  • intra-mart Accel Platform のバージョンは 2024 Autumn(Jasmine) 以降である必要があります。

  • IM-Juggling において、IM-Copilot モジュール と IM-ContentsSearch モジュール を選択している必要があります。
  • リリースノートに記載されているシステム要件を満たしている必要があります。

7.2. Solrのセットアップ

Solr のセットアップ手順については「Solrのセットアップ」を参照してください。

7.3. コアの追加・削除

弊社から提供しているセットアップ資材の Solr 環境は、初期状態で default_vector というベクトルデータベース用のコアが設定されています。
また、_iapdefault_vector というベクトルデータベース用のコンフィグセットも用意しています。
独自にコアを追加する場合、コンフィグセットに _iapdefault_vector を指定することで、ベクトルデータベース用のコアを追加できます。
  • Windowsの場合

    C:\solr\bin> solr.cmd create -c %CORE_NAME% -d _iapdefault_vector
    
  • Linuxの場合

    /usr/local/solr/bin/solr create -c %CORE_NAME% -d _iapdefault_vector
    
コアの追加や削除の詳細については「コアの追加・削除」を参照してください。

7.4. コアごとの設定

コアごとに下記の設定を行うことが可能です。

7.4.1. 基本設定(solrconfig.xml)

弊社から提供しているセットアップ資材に含まれるベクトルデータベース用の<solrconfig.xml>は IM-Copilot 用の設定が記述されています。
<solrconfig.xml>は %SOLR_HOME%/server/solr/%コア名%/conf ディレクトリ内に保存されています。
以下に記載する項目以外の内容は変更しないでください。
  • インデックス保存ディレクトリ

    インデックスが保存される場所です。初期状態では %SOLR_HOME%/server/solr/%コア名%/data ディレクトリに保存されます。
    相対パスで指定した場合はアプリケーションサーバを起動したディレクトリによってカレントディレクトリが変わるため、絶対パスでの指定を推奨します。
    <dataDir>${solr.data.dir:}</dataDir>
    

7.4.2. スキーマの設定(schema.xml)

弊社から提供しているセットアップ資材に含まれるベクトルデータベース用の<schema.xml>は IM-Copilot 用のスキーマ定義が記述されています。
<schema.xml>は %SOLR_HOME%/server/solr/%コア名%/conf ディレクトリ内に保存されています。
IM-Copilot の生成AI活用基盤で使用するフィールドの定義が記載されているため、必要がない限り以下に記載する項目以外の内容は変更しないでください。
  • テキストフィールド定義

    テキストを格納するフィールド定義は、言語毎に定義しています。
    intra-mart Accel Platform が標準でサポートする日本語・英語・中国語(簡体字)のフィールド定義を用意していますが、新たに言語を追加した場合は、対象言語のフィールド定義を追加する必要があります。
    なお、追加するフィールド名には text_[ロケールマスタのロケール ID(すべて小文字)] を設定してください。
    • ドイツ語(de)を追加した場合の例:

      schema.xml

      <fieldType name="text_de" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="false" enableGraphQueries="false">
          <analyzer>
              ...
          </analyzer>
      </fieldType>
      <field name="text_de" type="text_de" indexed="true" stored="true" />
      

    コラム

    intra-mart Accel Platform に新たに言語を追加する方法については、「言語追加ガイド」を参照してください。

  • アナライザ定義

    日本語以外の言語を使用する場合は、適宜アナライザの設定を調整してください。
    • セットアップ資材に含まれるアナライザ定義:

      schema.xml

      <analyzer>
          <tokenizer class="solr.JapaneseTokenizerFactory" mode="search" userDictionary="userdict_ja.txt" />
          <filter class="solr.JapaneseBaseFormFilterFactory" />
          <filter class="solr.JapanesePartOfSpeechStopFilterFactory" tags="stoptags_ja.txt" />
          <filter class="solr.CJKWidthFilterFactory" />
          <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords_ja.txt" />
          <filter class="solr.JapaneseKatakanaStemFilterFactory" minimumLength="4" />
          <filter class="solr.LowerCaseFilterFactory" />
      </analyzer>
      

    コラム

    Solr のアナライザについての詳しい情報は、Apache Software Foundation の Web サイトでご確認ください。

注意

  • ベクトルの次元数について
埋め込みベクトルを格納するフィールドタイプ knn_vector および knn_vector_[次元数] には、ベクトルの次元数を設定する属性 vectorDimension を定義しています。
セットアップ資材には、IM-Copilot の埋め込みアクションのデフォルトのモデルが出力する埋め込みベクトルの次元数と同じ 1536 次元のフィールド(vector)が定義されています。
2026 Autumn(Nemesia) 以降のセットアップ資材には、これに加えて 128 / 256 / 512 / 768 / 1024 / 2048 / 3072 次元のフィールド(vector_[次元数])が定義されています。
埋め込みベクトルは、IM-Copilot で設定した埋め込みモデルが出力する次元数に対応するフィールドに格納されます。上記以外の次元数の埋め込みベクトルは格納できません。
2026 Spring(Mimosa) 以前のセットアップ資材で構築した環境に vector_[次元数] フィールドを追加する手順は、「2025 Autumn(Lilac) ~ 2026 Spring(Mimosa) の環境からアップデートする場合」を参照してください。
実際に利用できる次元数は、IM-Copilot が対応している埋め込みモデルによって決まります。利用できる埋め込みモデルについては、「IM-Copilot 利用ガイド」-「サポートモデル」を参照してください。
モデルが生成する埋め込みベクトルの次元数と格納先フィールドの次元数が異なる場合、ベクトルデータを格納できなくなりますので、これらのフィールドタイプおよびフィールドの定義は変更しないでください。
  • 2026 Autumn(Nemesia) 以降のセットアップ資材に含まれるフィールドタイプ定義:

    <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"/>
    
  • 2026 Autumn(Nemesia) 以降のセットアップ資材に含まれるフィールド定義:

    <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"/>