概要
データベースコネクタは、JDBC対応のリレーショナルデータベースからデータを取得して Fess のインデックスに登録する機能を提供します。
この機能には fess-ds-db プラグインが必要です。
対応データベース
JDBC対応のすべてのデータベースに対応しています。主な例:
MySQL / MariaDB
PostgreSQL
Oracle Database
Microsoft SQL Server
SQLite
H2 Database
前提条件
JDBCドライバーが必要です
データベースへの読み取りアクセス権が必要です
大量のデータを取得する場合、適切なクエリ設計が重要です
JDBCドライバーのインストール
JDBCドライバーを lib/ ディレクトリに配置します:
Fess を再起動してドライバーを読み込みます。
設定方法
管理画面から「クローラー」→「データストア」→「新規作成」で設定します。
基本設定
| 項目 | 設定例 |
|---|---|
| 名前 | Products Database |
| ハンドラ名 | DatabaseDataStore |
| 有効 | オン |
パラメーター設定
MySQL/MariaDBの例:
PostgreSQLの例:
パラメーター一覧
| パラメーター | 必須 | 説明 |
|---|---|---|
driver | はい | JDBCドライバーのクラス名 |
url | はい | JDBC接続URL |
username | はい | データベースユーザー名 |
password | はい | データベースパスワード |
sql | はい | データ取得用のSQLクエリ |
fetch_size | いいえ | フェッチサイズ(デフォルト: 100) |
スクリプト設定
SQLの列名をインデックスフィールドにマッピングします:
利用可能なフィールド:
data.<column_name>- SQLクエリの結果列
SQLクエリの設計
効率的なクエリ
大量のデータを扱う場合、クエリのパフォーマンスが重要です:
差分クロール
更新されたレコードのみを取得する方法:
URLの生成
ドキュメントのURLはスクリプトで生成します:
マルチバイト文字対応
日本語などのマルチバイト文字を含むデータを扱う場合:
MySQL
PostgreSQL
PostgreSQLは通常UTF-8がデフォルトです。必要に応じて:
接続プーリング
大量のデータを処理する場合、接続プーリングを検討してください:
セキュリティ
データベース認証情報の保護
警告
パスワードを設定ファイルに直接記述することはセキュリティリスクがあります。
推奨される方法:
環境変数を使用
Fess の暗号化機能を使用
読み取り専用ユーザーを使用
最小権限の原則
データベースユーザーには必要最小限の権限のみを付与します:
使用例
製品カタログの検索
パラメーター:
スクリプト:
ナレッジベース記事
パラメーター:
スクリプト:
トラブルシューティング
JDBCドライバーが見つからない
症状: ClassNotFoundException または No suitable driver
解決方法:
JDBCドライバーが
lib/に配置されているか確認ドライバーのクラス名が正しいか確認
Fess を再起動
接続エラー
症状: Connection refused または認証エラー
確認事項:
データベースが起動しているか
ホスト名、ポート番号が正しいか
ユーザー名、パスワードが正しいか
ファイアウォール設定
クエリエラー
症状: SQLException やSQLシンタックスエラー
確認事項:
SQLクエリを直接データベースで実行してテスト
列名が正しいか確認
テーブル名が正しいか確認
参考情報
データストアコネクタの概要 - データストアコネクタ概要
CSVコネクタ - CSVコネクタ
JSONコネクタ - JSONコネクタ
データストアクロール - データストア設定ガイド