概要
Elasticsearch/OpenSearchコネクタは、ElasticsearchまたはOpenSearchクラスタからデータを取得して Fess のインデックスに登録する機能を提供します。
この機能には fess-ds-elasticsearch プラグインが必要です。
対応バージョン
Elasticsearch 7.x / 8.x
OpenSearch 1.x / 2.x
前提条件
プラグインのインストールが必要です
Elasticsearch/OpenSearchクラスタへの読み取りアクセスが必要です
クエリを実行できる権限が必要です
プラグインのインストール
方法1: JARファイルを直接配置
方法2: 管理画面からインストール
「システム」→「プラグイン」を開く
JARファイルをアップロード
Fess を再起動
設定方法
管理画面から「クローラー」→「データストア」→「新規作成」で設定します。
基本設定
| 項目 | 設定例 |
|---|---|
| 名前 | External Elasticsearch |
| ハンドラ名 | ElasticsearchDataStore |
| 有効 | オン |
パラメーター設定
基本的な接続:
認証ありの接続:
複数ホストの設定:
パラメーター一覧
| パラメーター | 必須 | 説明 |
|---|---|---|
settings.fesen.http.url | はい | Elasticsearch/OpenSearchのホスト(カンマ区切りで複数指定可) |
index | はい | 対象インデックス名 |
settings.fesen.username | いいえ | 認証用ユーザー名 |
settings.fesen.password | いいえ | 認証用パスワード |
size | いいえ | スクロール時の取得件数(デフォルト: 100) |
scroll | いいえ | スクロールのタイムアウト(デフォルト: 1m) |
query | いいえ | クエリJSON(デフォルト: match_all) |
fields | いいえ | 取得するフィールド(カンマ区切り) |
スクリプト設定
基本的なマッピング:
ネストしたフィールドへのアクセス:
利用可能なフィールド
data.<field_name>- Elasticsearchドキュメントのフィールドdata._id- ドキュメントIDdata._index- インデックス名data._type- ドキュメントタイプ(Elasticsearch 7未満)data._score- 検索スコア
クエリの設定
全ドキュメントの取得
デフォルトでは全ドキュメントが取得されます。 query パラメーターを指定しない場合、match_all が使用されます。
特定の条件でフィルタリング
範囲指定:
複数条件:
ソート指定:
特定のフィールドのみ取得
fieldsパラメーターで取得フィールドを限定
すべてのフィールドを取得する場合は fields を指定しないか、空にします。
使用例
基本的なインデックスのクロール
パラメーター:
スクリプト:
認証付きクラスタからのクロール
パラメーター:
スクリプト:
複数インデックスからのクロール
パラメーター:
スクリプト:
OpenSearchクラスタのクロール
パラメーター:
スクリプト:
フィールドを限定してクロール
パラメーター:
スクリプト:
複数ホストでの負荷分散
パラメーター:
スクリプト:
トラブルシューティング
接続エラー
症状: Connection refused または No route to host
確認事項:
ホストURLが正しいか確認(プロトコル、ホスト名、ポート)
Elasticsearch/OpenSearchが起動しているか確認
ファイアウォール設定を確認
HTTPSの場合、証明書が有効か確認
認証エラー
症状: 401 Unauthorized または 403 Forbidden
確認事項:
ユーザー名とパスワードが正しいか確認
ユーザーに適切な権限があるか確認:
インデックスへの読み取り権限
スクロールAPIの使用権限
Elasticsearch Security(X-Pack)が有効な場合、適切に設定されているか確認
インデックスが見つからない
症状: index_not_found_exception
確認事項:
インデックス名が正しいか確認(大文字小文字を含む)
インデックスが存在するか確認:
ワイルドカードパターンが正しいか確認(例:
logs-*)
クエリエラー
症状: parsing_exception または search_phase_execution_exception
確認事項:
クエリJSONが正しいか確認
Elasticsearch/OpenSearchのバージョンに対応したクエリか確認
フィールド名が正しいか確認
クエリを直接Elasticsearch/OpenSearchで実行してテスト:
スクロールタイムアウト
症状: No search context found または Scroll timeout
解決方法:
scrollを長くする:sizeを小さくする:クラスタのリソースを確認
大量データのクロール
症状: クロールが遅い、またはタイムアウトする
解決方法:
sizeを調整(大きすぎると遅くなる):fieldsで取得フィールドを限定queryで必要なドキュメントのみフィルタリング複数のデータストアに分割(インデックス単位、時間範囲単位など)
メモリ不足
症状: OutOfMemoryError
解決方法:
sizeを小さくするfieldsで取得フィールドを限定Fess のヒープサイズを増やす
大きなフィールド(バイナリデータなど)を除外
SSL/TLS接続
自己署名証明書の場合
警告
本番環境では適切に署名された証明書を使用してください。
自己署名証明書を使用する場合、Java keystoreに証明書を追加:
クライアント証明書認証
クライアント証明書が必要な場合、追加のパラメーター設定が必要です。 詳細はElasticsearchクライアントのドキュメントを参照してください。
高度なクエリ例
集約を含むクエリ
注釈
集約結果は取得されず、ドキュメントのみが取得されます。
スクリプトフィールド
スクリプト:
参考情報
データストアコネクタの概要 - データストアコネクタ概要
データベースコネクタ - データベースコネクタ
データストアクロール - データストア設定ガイド