intra-mart Accel Platform — Solr管理者ガイド 第9版 2024-10-01

Copyright © 2014 NTT DATA INTRAMART CORPORATION

↑Top

1

intra-mart Accel Platform — Solr管理者ガイド 第9版 2024-10-01

目次
1. 改訂情報
2. はじめに2.1. 本書の内容
2.2. 対象読者
2.3. 本書に記載されている外部サイトのURL
2.4. 用語解説
2.5. 本書の構成
3. Solrの概要
3.1. Apache Solr とは
3.2. RDBとの比較
4. Solrのセットアップ
4.1. 前提条件
4.2. セットアップ手順
5. Solrの設定
5.1. コアの追加・削除
5.2. コアごとの設定
6. Solrの操作
6.1. インデックスの削除
6.2. Solrの移行
6.3. Solrのバックアップ
7. Solrのベクトル検索機能の利用
7.1. 前提条件
7.2. Solrのセットアップ
7.3. コアの追加・削除
7.4. コアごとの設定

2

intra-mart Accel Platform — Solr管理者ガイド 第9版 2024-10-01

改訂情報
変更年月日

変更内容

2014-05-30

初版

2014-12-01

第２版

下記を追加・変更しました「利用するJavaのバージョンについて」に「Java SE Development Kit 7u55」以降ではJVM起動オプ
ションを指定する必要がない旨を追加「Solr管理画面の確認」に説明を追加

2017-04-01

第３版

下記を追加・変更しました「Solrのセットアップ」のセットアップツールのダウンロード方法の説明を修正

2018-04-01

第４版

下記を変更しました「Solrのセットアップ」に最適化処理に関する注意事項を追加しました。

2018-08-01

第５版

下記を変更しました「サーバの起動と停止」に Payara の説明を追加「Solrの移行」に Payara の説明を追加

2020-08-01

第６版

下記を変更しました「サーバの起動と停止」の「Jetty を利用する場合」に注意書きを追加「Solrの移行」に Tomcat の説明を修正「Solrの移行」に Jetty の説明を修正

2021-04-01

第７版

下記を変更しました
Solrのバージョンアップに伴い、全体的に説明を修正「利用するJavaのバージョンについて」の記述がサポート外のJDKの記述であるため削除

2024-04-01

第８版

下記を追加しました「サーバの起動と停止」に、mオプションを用いたサーバ起動に関するコラムを追加

2024-10-01

第９版

下記を追加しました
Solrのバージョンアップに伴い、全体的に説明を修正「Solrのセットアップ」に「サーバのセットアップ」を追加「サーバの起動と停止」にユーザプロセス数上限到達の警告についての説明を追加「Solrのベクトル検索機能の利用」を追加

3

intra-mart Accel Platform — Solr管理者ガイド 第9版 2024-10-01

はじめに
本書の内容
本書では IM-ContentsSearch for Accel Platform で利用している全文検索エンジンサーバの Apache Solr について説明します。
IM-ContentsSearch モジュールの利用方法は「intra-mart Accel Platform セットアップガイド」-「IM-ContentsSearch」を参照してください。
テナント環境セットアップ時の設定については「intra-mart Accel Platform セットアップガイド 」-「Apache Solr接続情報」を参照してください。

対象読者
以下の利用者を対象としています。
IM-ContentsSearch をセットアップする方
IM-ContentsSearch を運用・管理する方

本書に記載されている外部サイトのURL
本書内で記載されている外部URLは 2021年4月 現在のものです。

用語解説
本書中の表記について以下に記載します。
IM-ContentsSearch for Accel Platform を省略して IM-ContentsSearch と表記します。
Apache Solr を省略して Solr と表記します。
リレーショナルデータベース を省略して RDB と表記します。
Apache Solr がデプロイされたWeb Application Serverを Solrサーバ と表記します。
セットアップ資材を展開したディレクトリを %SOLR_HOME% と表記します。

本書の構成
本書は以下の構成です。
Solrの概要
Solr の概要・基本的な知識を紹介します。
Solrのセットアップ
IM-ContentsSearch を利用するための Solr のセットアップ方法について説明します。
Solrの設定
Solr の設定項目について説明します。
Solrの操作
IM-ContentsSearch を利用するにあたって必要となる Solr の運用上の手順などについて説明します。

4

intra-mart Accel Platform — Solr管理者ガイド 第9版 2024-10-01

Solrの概要
ここでは Solr の概要や、基本的な知識について紹介します。

項目
Apache Solr とは
RDBとの比較

Apache Solr とはApache Solr は、高性能の全文検索エンジンライブラリ Lucene を使って構築されたJavaベースの全文検索エンジンサーバです。
Solr は全文検索を行う対象となる文書・データから索引語を抽出して、文書群への位置情報を単語ごとに保持した転置インデックスを保持します。
この転置インデックスをあらかじめ作成しておくことで、RDBでは実現が難しい高速な全文検索が実現可能です。

コラム
Solr についての詳しい情報は、Apache Software Foundation のWeb サイトでご確認ください。
https://solr.apache.org/ (English)
また「Solr Wiki」 では、Solr に関する様々な資料が掲載されていますのでご活用ください。
https://cwiki.apache.org/confluence/display/solr/ (English)

RDBとの比較
RDB と Solr における用語の対比表は以下の通りです。
用語比較
RDB

Solr

備考

スキーマ

→

コア

詳細については次項にて説明します。

テーブル

→

スキーマ

詳細については次項にて説明します。

レコード

→

ドキュメントIM-ContentsSearch では コンテンツ という形でラップしています。

カラム

→

フィールド

プライマリキー→IDフィールド

ユーザ

→

なし

コミット

→

コミット

詳細については次項にて説明します。

ロールバック→

ロールバック

詳細については次項にて説明します。

なし

→

最適化

詳細については次項にて説明します。

詳細説明
コア
RDBのスキーマに相当する機能で、1つの Solr 上に複数のコアを保持することが可能です。
Solr に対して複数コアの設定を行った場合、コアごとにアクセスするURLが異なります。
尚、 IM-ContentsSearch 用に配布している Solr では、標準で default という名前のコアを定義しています。
スキーマ
RDBのテーブルに相当する機能です。 Solr では1コアに1スキーマのみ定義可能です。
スキーマ上のプライマリキーに相当するIDフィールドは、システムを通して一意となる値を設定する必要があります。
また、 Solr のスキーマには以下の特徴があります。
1. 配列型の値をサポートしている
2. 動的フィールド（データ型のみ指定し後から自由に追加できるフィールド）がある
以上の特徴により、RDBよりも柔軟なデータ構造を持たせることができます。

5

intra-mart Accel Platform — Solr管理者ガイド 第9版 2024-10-01
更新処理
IM-ContentsSearch にはRDBのupdate文のようにレコード内の特定カラムを更新する機能がありません。
そのため、いずれかの値に変更があった場合には該当のドキュメントを再度作成する必要があります。
トランザクション
Solr には分散トランザクションの概念がありません。
そのため複数のプロセスから同時に登録処理が行われた場合、先行するプロセスのコミット処理によって、後続するプロセスが登録したデータが途中でコミットされる可能性があります。
この問題を回避するために IM-ContentsSearch では、クローラジョブは１つのジョブネットにまとめ、更にそのジョブネットは並列実行を許可しない設定としています。
コミット
Solr におけるコミットは、登録済みデータを検索結果に反映させる処理です。
RDBのようにトランザクション処理を確定するためのコミット処理ではありません。
ロールバックSolr におけるロールバックは、登録済みでコミット前のデータを破棄する処理です。
先述の通り Solr には分散トランザクションの概念がないため、複数のプロセスから同時に登録処理が行われていた場合、別プロセスが登録したデータも削除されます。
最適化
Solr ではコミット処理を行うたびに索引情報を保持したバイナリファイルが作成されるため、コミットを繰り返すとファイル数が増え続けます。
ファイル数が増大することで、以下の問題が発生します。
1. 検索時にロードするバイナリファイルが増加しI/O負荷が高くなることで、検索速度が低下する。
2. ファイルディスクリプタ、またはファイルハンドルの消費量が多くなり、場合によっては不足する可能性がある。
この問題を回避するために、 Solr には最適化（optimize）処理が用意されています。
最適化処理を実行することで、バイナリファイルを最小限にまとめ直し、上記の問題を回避することが可能です。
IM-ContentsSearch では、以下の方法で Solr に対して最適化処理を実行することが可能です。
1. クローラジョブネットの最後に最適化ジョブを実行する。 （推奨）2. APIから最適化処理を実行する。 （非推奨）3. ジョブの終了処理にて上記の最適化APIを実行する。 （非推奨）注意
最適化処理はバイナリファイルのサイズ、すなわち登録されたデータの量によって処理時間が増加するため、実行を最小限にする必要があります。
すべてのコミット処理が終了するタイミングで最適化処理を実行するために、ジョブネットの実行ジョブの最後に最適化ジョブを設定することを推奨します。

6

intra-mart Accel Platform — Solr管理者ガイド 第9版 2024-10-01

Solrのセットアップ
IM-ContentsSearch を利用するための Solr のセットアップ方法について説明します。

項目
前提条件
セットアップ手順
セットアップ資材の取得・展開
サーバのセットアップ
サーバの起動と停止
Solr管理画面の確認

前提条件
リリースノートに記載されているシステム要件を満たしている必要があります。
詳細は「リリースノート」-「Apache Solr システム要件」を参照してください。

注意
Solr はディスクアクセスが大量に発生する場合があります。
そのため、intra-mart Accel Platform がセットアップされたサーバと同一筐体に構築した場合、パフォーマンスに影響が出る可能性があります。
運用環境では intra-mart Accel Platform と Solr を別サーバに構築することを強く推奨します。

注意
Solr における最適化処理では、一時的に登録されている全データを複製します。
そのため、最適化処理時には、Solrサーバ上で、通常使用しているディスク容量の2倍以上のディスクの空き容量を必要としますので、注意してください。

セットアップ手順
IM-ContentsSearch では、Solr のセットアップ資材を提供しています。
アプリケーションサーバ「Jetty」を利用した構築および起動

コラム
2021 Spring(Bergamot) からアプリケーションサーバは同梱されている Jetty を使用します。
Resin／Tomcat／Payara へデプロイするためのセットアップツールは提供しなくなりました。

セットアップ資材の取得・展開
1. セットアップ資材の取得
Solr のセットアップ資材を取得します。
セットアップツールは以下のURLよりダウンロードできます。ダウンロードには製品のライセンスキーが必要です。
プロダクトファイルダウンロード
2. セットアップツールの展開（解凍）セットアップ資材のファイル <solr.zip> を取得後、任意のパスに展開します。
本書では、例として以下のディレクトリを指定します。
Windowsの場合
C:\solr

Linuxの場合/usr/local/solr

7intra-mart Accel Platform — Solr管理者ガイド 第9版 2024-10-01
セットアップ資材のファイルを展開したディレクトリを、以下 %SOLR_SETUP_HOME% と略します。

サーバのセットアップ
コラム
Solr にはインストールスクリプト（install_solr_service.sh）も用意されていますが、ここでは手動による導入手順を紹介します。
なお、Apache Software Foundation の Web サイトには Solr のセットアップ手順についても記載されていますので、併せてご活用ください。
https://solr.apache.org/guide/solr/latest/deployment-guide/taking-solr-to-production.html (English)
1. 稼働ユーザのセットアップ
Solr を root として実行することは推奨されないため、Solr の稼働ユーザを作成してください。
また、稼働ユーザを %SOLR_SETUP_HOME% ディレクトリの所有者に設定し、%SOLR_SETUP_HOME%/bin/solr スクリプトの実行権限を付与してください。
2. 環境変数のセットアップ
環境に合わせて調整してください。
Windows 環境で使用するインクルードファイル%SOLR_SETUP_HOME%\bin\solr.in.cmd

Linux 環境で使用するインクルードファイル%SOLR_SETUP_HOME%/bin/solr.in.sh

以下に主要な環境変数を記載します。
環境変数

説明

SOLR_JETTY_HOST

Solr がバインドするネットワークインタフェースを設定します。デフォルトは 127.0.0.1 のため、外部から Solr にアクセスできません。
なお、Solr はオープンなネットワーク上に公開されるように設計されていませんので、最小限の範囲で公開することを推奨します。
※intra-mart Accel Platform から Solr にアクセスできるように設定してください。

SOLR_IP_ALLOWLIST /ネットワーク アクセスを許可または制限する IP アドレスを指定します。

SOLR_IP_DENYLISTSOLR_HEAP /Solr が使用可能なメモリサイズを設定します。デフォルトは 512m （512MB）のため、環境に合SOLR_JAVA_MEM

わせて調整が必要です。
※後述の起動引数でも指定できます。

SOLR_JAVA_HOME

Solr が使用する Java を設定します。
※JAVA_HOME で指定された Java 以外を使用する場合に設定します。

SOLR_PORT

Solr がリッスンするポート番号です。デフォルトは 8983 です。
※後述の起動引数でも指定できます。

サーバの起動と停止
1. サーバの起動
Windowsの場合
C:\solr\bin> solr.cmd startLinuxの場合/usr/local/solr/bin/solr start8

intra-mart Accel Platform — Solr管理者ガイド 第9版 2024-10-01
コラム
Solrの起動時、以下のようなエラーが発生する場合、ポート番号の設定を変更してください。
-p %PORT% と指定することで Solr が使用するポート番号を変更できます。
エラーログ出力例
ERROR: Process 4 is already listening on port 8983. If this is Solr, please stop it first before starting (or use restart). If
this is not Solr, then please choose a different port using -p PORT

コラム
Solrの起動中、環境により OutOfMemoryError が発生することがあります。
その場合、初期値である512MBよりも大きなメモリサイズを、起動時に設定してください。
-m %MEMORY_SIZE% と指定することで Solr が使用可能なメモリサイズを変更できます。
例えば、メモリ4GBを確保する場合、「-m 4g」と指定します。

コラム
Solrの起動中、以下のような警告が発生することがあります。
その場合、Solr の稼働ユーザの作成プロセス数の制限を変更することで回避できます。
警告ログ出力例[WARN] *** Your Max Processes Limit is currently 31212.

作成プロセス数の制限は以下の方法で変更可能です。
ulimit コマンド（root 権限による実行）
実行例
ulimit -u 65000

制限ファイル（/etc/security/limits.conf 等）への制限設定追加
記載例[Solr 稼働ユーザ] hard nproc 65000[Solr 稼働ユーザ] soft nproc 65000

2. サーバの停止
Solr を停止する際には、停止する Solr ポート番号を指定します。
-p %PORT% の代わりに -all と指定することですべての Solr を停止することもできます。
Windowsの場合
C:\solr\bin> solr.cmd stop -p %PORT%Linuxの場合/usr/local/solr/bin/solr stop -p %PORT%

Solr管理画面の確認
Solr管理画面へ接続し、「search」ボタンが正常に動作することを確認します。
1. 以下のURLをWebブラウザのアドレスバーに入力して「Solr管理」画面が表示できることを確認します。
http://<HOST>:<PORT>/solr/#/

9intra-mart Accel Platform — Solr管理者ガイド 第9版 2024-10-01

図 Solr管理画面
2. 「Core Selector」を選択し、コアの概要画面を表示します。
http://<HOST>:<PORT>/solr/#/default/query

図 コアの概要画面
3. 「query」リンクをクリックします。

10

intra-mart Accel Platform — Solr管理者ガイド 第9版 2024-10-01

図 クエリー画面
4. q (The Query String) のテキストエリアに 「*:*」と入力されていることを確認し、「Execute Query」ボタンをクリックします。
5. 検索に成功した場合、ブラウザに以下のようなJSONが表示されます。
{"responseHeader":{"status":0,"QTime":38,"params":{"q":"*:*","indent":"true","q.op":"OR","useParams":"","_":"1726023537708"}},"response":{"numFound":0,"start":0,"numFoundExact":true,"docs":[ ]}}11intra-mart Accel Platform — Solr管理者ガイド 第9版 2024-10-01

Solrの設定
Solr の設定項目について説明します。

項目
コアの追加・削除
コアとは
intra-mart Accel Platformのマルチテナント環境における Solr の構成
コアの追加
コアの削除
コアごとの設定
基本設定（solrconfig.xml）
スキーマの設定（schema.xml）

コアの追加・削除
コアとは
コアはRDBのスキーマに相当し、コアごとにスキーマ定義やクエリの設定を持つことができます。
１つのSolrインスタンスの中に複数のコア（マルチコア）を設定することで、コアごとにインデックスが保持されます。
弊社から提供しているセットアップ資材のSolr環境は初期状態で default というコアが設定されています。
コアの設定ファイル（<schema.xml>,<solrconfig.xml>など）にはIM-ContentsSearch用の設定が最初から記載されています。

intra-mart Accel Platformのマルチテナント環境における Solr の構成
intra-mart Accel Platformでは、WARファイルによる複数テナントおよび、バーチャルテナントによる複数テナントで運用する場合には、テナ
ントごとにコアを設定し、テナント単位でインデックスの管理を行います。
WARファイルによる複数テナントおよび、バーチャルテナントによる複数テナント環境での Solr の構成は以下の２つのパターンが考えられます。
1. テナントごとに Solr を構築する
2. １つの Solr で、テナントごとにインデックスを管理する（コアを複数作成する）。
２の構成にする場合には、Solrコア構成の変更が必要です。
データの増加に応じてインデックスが増加することにより検索や最適化の処理速度が低下する場合があるため、可能であれば、テナントごとにSolrのインスタンスを分けて（１の構成で）運用することを推奨します。

図 １つのSolrインスタンスに複数のコアを設定した場合のWARファイルによる複数テナントおよび、バーチャルテナントによる複数テナント環境の概念

注意
IM-ContentsSearchではコンテンツを識別するユニークキーに ID フィールドを指定しており、別々のテナントでコンテンツのIDが生成されるため、各テナントに同じSolrコアを設定することはできません。

コアの追加

12

intra-mart Accel Platform — Solr管理者ガイド 第9版 2024-10-01
コアを作成する例の手順を紹介します。
default のコアがあることを前提とします。
1. コマンドラインからコアを作成
コマンドラインから、以下のコマンドを実行します。
Windowsの場合
C:\solr\bin> solr.cmd create -c %CORE_NAME% -d _iapdefault

Linuxの場合/usr/local/solr/bin/solr create -c %CORE_NAME% -d _iapdefault

2. 「Solr管理画面」の確認
ブラウザで「Solr管理画面」が表示できることを確認してください。
http://<HOST>:<PORT>/solr/#/%CORE_NAME%/core-overview

コアの削除
コアを削除する例の手順を紹介します。
1. コマンドラインからコアを作成
コマンドラインから、以下のコマンドを実行します。
Windowsの場合
C:\solr\bin> solr.cmd delete -c %CORE_NAME%

Linuxの場合/usr/local/solr/bin/solr delete -c %CORE_NAME%

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

基本設定（solrconfig.xml）
弊社から提供しているセットアップ資材に含まれる<solrconfig.xml>はIM-ContentsSearch用の設定が記述されています。
<solrconfig.xml>は %SOLR_HOME%/server/solr/%コア名%/conf ディレクトリ内に保存されています。
以下に記載する項目以外の内容は変更しないでください。
インデックス保存ディレクトリ
インデックスが保存される場所です。初期状態では %SOLR_HOME%/server/solr/%コア名%/data ディレクトリに保存されます。
相対パスで指定した場合はアプリケーションサーバを起動したディレクトリによってカレントディレクトリが変わるため、絶対パスでの指定を推奨します。
<dataDir>${solr.data.dir:}</dataDir>

スキーマの設定（schema.xml）
弊社から提供しているセットアップ資材に含まれる<schema.xml>はIM-ContentsSearch用のスキーマ定義が記述されています。
IM-ContentsSearchのためのフィールドやアナライザの定義が記載されているため、必要がない限り<schema.xml>の内容を変更しないでください。
<schema.xml>は %SOLR_HOME%/server/solr/%コア名%/conf ディレクトリ内に保存されています。

13

intra-mart Accel Platform — Solr管理者ガイド 第9版 2024-10-01
コラム
IM-ContentsSearch が利用する Solr のフィールド（<schema.xml>で定義されているフィールド）は、IM-ContentsSearchの検索フィールド設定（solr-field-config）によって指定されています。
詳細は以下のドキュメントを参照してください。
「IM-ContentsSearch プログラミングガイド」-「フィールド」「設定ファイルリファレンス」-「検索フィールド設定」

14

intra-mart Accel Platform — Solr管理者ガイド 第9版 2024-10-01

Solrの操作
IM-ContentsSearch を利用するにあたって必要となる Solr の運用上の手順などについて説明します。

項目
インデックスの削除
Solrの移行
Solrのバックアップ

インデックスの削除
インデックスを削除する方法について説明します。
開発時や環境再構築時に一旦インデックスを削除したい場合などに実行してください。
管理画面から削除するクエリを指定して削除できます。いずれも、 Solr が起動されている状態で実行する必要があります。
コア名「default」内のインデックスをすべて削除する操作
1. 管理画面を開きます。
http://localhost:8983/solr/#/default/documents

2. 「Document Type」、「Document」を以下の通り入力します。
Document Type: Solr Command (raw XML or
JSON
Document:{‘delete’: {‘query’: ‘*:*’}}

3. 「Submit Document」リンクをクリックします。

コラム
IM-ContentsSearch では、インデックスを削除するためのジョブを用意しています。
「ジョブ・ジョブネットリファレンス」-「削除クローリング」 を参照してください。

Solrの移行Solr に保存されている設定ファイルやインデックスの移行手順について説明します。
移行先のサーバでインデックスを再度作成する場合にはインデックスのコピーは必要ありません。
本書では intra-mart Accel Platform 2024 Autumn(Jasmine) 以降の Solr を移行する手順を記載します。
過去のバージョンの移行手順はドキュメントアーカイブの管理者ガイドを参照してください。

15

intra-mart Accel Platform — Solr管理者ガイド 第9版 2024-10-01
コラム
2024 Spring(Iris) 以前の Solr からの移行はできません。
Solr を新規で構築し、インデックスを作成してください。
インデックスの再作成が必要となる条件やインデックスの再作成の手順についての詳しい情報は Apache Software Foundation の
Web サイトに掲載されています。併せてご活用ください。
https://solr.apache.org/guide/solr/latest/indexing-guide/reindexing.html (English)

注意
Solr のデータの移行作業を行う前には、バックアップを行うことを推奨します。
作業は必ず Solr を停止させている状態で開始してください。
移行先の Solr は弊社提供のセットアップ資材で構築構築している環境とします。
%OLD_HOME%: 移行元の Solr インストールディレクト
リ%NEW_HOME%: 移行先の Solr インストールディレクト
リ

1. solrディレクトリのコピー<%OLD_HOME%/server/solr> ディレクトリを <%NEW_HOME%/server/solr> ディレクトリ配下にコピーします。
2. インデックス保存ディレクトリのコピー
インデックスが保存されているディレクトリをコピーしてください。
<%OLD_HOME%/server/solr/%コア名%/conf/solrconfig.xml>の dataDir に指定しているディレクトリを変更していない場合<%OLD_HOME%/server/solr/%コア名%> ディレクトリ配下に data ディレクトリがあるため、手順2でコピー済みです。
<%OLD_HOME%/server/solr/%コア名%/conf/solrconfig.xml>の dataDir に指定しているディレクトリを変更している場合
複数のコアを設定している場合はそれぞれのディレクトリと <solrconfig.xml> の dataDir の設定を確認してください。
3. その他環境設定
Solr に同梱されている Jetty の設定をデフォルト設定から変更している場合は、移行先の環境に合わせて変更してください。
4. Jettyの起動
Solr を起動し、正常に起動されることを確認してください。
5. Solr管理画面の確認
ブラウザでSolr管理画面が表示できることを確認してください。
http://<HOST>:<PORT>/solr/#/

Solrのバックアップ
1. solrディレクトリのバックアップ%SOLR_HOME%/server/solr ディレクトリをバックアップしてください。
<solrconfig.xml> の dataDir の指定を変更していない場合は %SOLR_HOME% ディレクトリに設定ファイルとインデックスが保存されているため、下記の手順を行う必要はありません。
2. インデックスのバックアップ
インデックスが保存されているディレクトリをバックアップしてください。
複数のコアを設定している場合はそれぞれの <solrconfig.xml> の dataDir に指定されているディレクトリをそれぞれバックアップしてく
ださい。

16

intra-mart Accel Platform — Solr管理者ガイド 第9版 2024-10-01

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 サイトでご確認ください。
https://solr.apache.org/guide/solr/latest/query-guide/dense-vector-search.html (English)

項目
前提条件
Solrのセットアップ
コアの追加・削除
コアごとの設定
基本設定（solrconfig.xml）
スキーマの設定（schema.xml）

前提条件
intra-mart Accel Platform のバージョンは 2024 Autumn(Jasmine) 以降である必要があります。
IM-Juggling において、IM-Copilot モジュール と IM-ContentsSearch モジュール を選択している必要があります。
リリースノートに記載されているシステム要件を満たしている必要があります。
詳細は「リリースノート」の「Apache Solr システム要件」を参照してください。

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

コアの追加・削除
弊社から提供しているセットアップ資材の 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

コアの追加や削除の詳細については「コアの追加・削除」を参照してください。

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

基本設定（solrconfig.xml）
弊社から提供しているセットアップ資材に含まれるベクトルデータベース用の<solrconfig.xml>は IM-Copilot 用の設定が記述されています。
<solrconfig.xml>は %SOLR_HOME%/server/solr/%コア名%/conf ディレクトリ内に保存されています。

17

intra-mart Accel Platform — Solr管理者ガイド 第9版 2024-10-01
以下に記載する項目以外の内容は変更しないでください。
インデックス保存ディレクトリ
インデックスが保存される場所です。初期状態では %SOLR_HOME%/server/solr/%コア名%/data ディレクトリに保存されます。
相対パスで指定した場合はアプリケーションサーバを起動したディレクトリによってカレントディレクトリが変わるため、絶対パスでの指定を推奨します。
<dataDir>${solr.data.dir:}</dataDir>

スキーマの設定（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 サイトでご確認ください。
https://solr.apache.org/guide/solr/latest/indexing-guide/document-analysis.html (English)

18

intra-mart Accel Platform — Solr管理者ガイド 第9版 2024-10-01
注意
ベクトルの次元数について
埋め込みベクトルを格納するフィールドタイプ knn_vector には、ベクトルの次元数を設定する属性 vectorDimension を定義しています。
セットアップ資材に含まれる vectorDimension 属性には、IM-Copilot の埋め込みアクションのデフォルトのモデルが出力する埋め込みベクトルの次元数と同じ 1536 が設定されています。
モデルが生成する埋め込みベクトルの次元数と格納先フィールドの次元数が異なる場合、ベクトルデータを格納できなくなりますの
で、必要がない限り変更しないでください。
セットアップ資材に含まれる knn_vector フィールドタイプ定義：<fieldType name="knn_vector" class="solr.DenseVectorField" vectorDimension="1536"
similarityFunction="euclidean"/>19