概要
Groovyは Fess のデフォルトスクリプト言語です。 Java仮想マシン(JVM)上で動作し、Javaとの高い互換性を持ちながら、 より簡潔な構文でスクリプトを記述できます。
基本構文
変数宣言
文字列操作
コレクション操作
条件分岐
ループ処理
データストアスクリプト
データストア設定でのスクリプト例です。
基本的なマッピング
URLの生成
コンテンツの加工
日付の処理
利用可能なオブジェクト
スクリプトの実行コンテキストによって、利用可能なオブジェクトが異なります。
| コンテキスト | オブジェクト | 説明 |
|---|---|---|
| 全コンテキスト | container | DIコンテナ。コンポーネントへのアクセスに使用 |
| スケジュールジョブ | executor | ジョブ実行制御( JobExecutor )。ジョブの停止サポートに必要 |
| データストア | (コネクタ固有) | 各データストアが提供するデータレコード変数 |
スケジュールジョブスクリプト
スケジュールジョブで使用するGroovyスクリプトの例です。 スケジュールジョブでは container と executor が利用可能です。 executor をジョブの execute() メソッドに渡すことで、ジョブの停止制御が有効になります。
クロールジョブの実行
条件付きクロール
複数のジョブを順番に実行
Javaクラスの使用
Groovyスクリプト内では、Javaの標準ライブラリやFessのクラスを使用できます。
日付・時刻
ファイル操作
HTTP通信
警告
外部リソースへのアクセスはパフォーマンスに影響するため、 必要最小限に抑えてください。
Fessコンポーネントへのアクセス
container を使用してFessのコンポーネントにアクセスできます。
システムヘルパー
設定値の取得
検索の実行
エラーハンドリング
デバッグとログ出力
ログ出力
デバッグ用の出力
ベストプラクティス
シンプルに保つ: 複雑なロジックは避け、読みやすいコードを心がける
nullチェック:
?.演算子や?:演算子を活用例外処理: 適切なtry-catchで予期しないエラーに対応
ログ出力: デバッグしやすいようにログを出力
パフォーマンス: 外部リソースアクセスを最小化
参考情報
スクリプティング概要 - スクリプティング概要
データストアクロール - データストア設定ガイド
スケジューラ - スケジューラー設定ガイド