概要
Fess では、様々な場面でスクリプトを使用してカスタムロジックを実装できます。 スクリプトを活用することで、クロール時のデータ加工、検索結果のカスタマイズ、 スケジュールジョブの実行などを柔軟に制御できます。
対応スクリプト言語
Fess は以下のスクリプト言語をサポートしています:
| 言語 | 識別子 | 説明 |
|---|---|---|
| Groovy | groovy | デフォルトのスクリプト言語。Java互換で強力な機能を提供 |
スクリプトの使用場面
データストア設定
データストアコネクタでは、取得したデータをインデックスフィールドにマッピングするために スクリプトを使用します。
パスマッピング
URLの正規化やパスの変換にスクリプトを使用できます。
スケジュールジョブ
スケジュールジョブでは、カスタムの処理ロジックをGroovyスクリプトで記述できます。
基本的な構文
変数アクセス
文字列操作
条件分岐
日付操作
利用可能なオブジェクト
スクリプト内で使用可能な主なオブジェクト:
| オブジェクト | 説明 |
|---|---|
data | データストアから取得したデータ |
container | DIコンテナ(コンポーネントへのアクセス) |
container.getComponent("systemHelper") | システムヘルパー(containerから取得) |
container.getComponent("fessConfig") | Fess の設定(containerから取得) |
セキュリティ
警告
スクリプトは強力な機能を持つため、信頼できるソースからのみ使用してください。
スクリプトはサーバー上で実行されます
ファイルシステムやネットワークへのアクセスが可能です
管理者権限を持つユーザーのみがスクリプトを編集できるようにしてください
パフォーマンス
スクリプトのパフォーマンスを最適化するためのヒント:
複雑な処理を避ける: スクリプトはドキュメントごとに実行されます
外部リソースへのアクセスを最小化: ネットワーク呼び出しは遅延の原因になります
キャッシュを活用: 繰り返し使用する値はキャッシュを検討
デバッグ
スクリプトのデバッグには、ログ出力を活用します:
ログレベルの設定:
app/WEB-INF/classes/log4j2.xml:
参考情報
Groovyスクリプトガイド - Groovyスクリプトガイド
データストアクロール - データストア設定ガイド
スケジューラ - スケジューラー設定ガイド