Fess 9に向けて

まぁ、いつものことながら、機能は十分に揃っていると思うし、そろそろ大きな追加はいらないんじゃないか、というのを毎回思っているような気がしますが、いつのものように例外はなく、Fess 9では大きな変更が入る予定です。機能的にはいつもより大きな気もします…。

  • ジョブ管理機能:今までウェブの画面上では1つのクロールしか実行できませんでしたが(商用サポートではバッチでクロール実行しているのでパラレル実行は今までもしていましたが)、クロールの実行やログのパージなど、すべてジョブ化してFessの管理画面から設定が可能になります。標準ではGroovyで記述すれば何でもできるようになります(他の言語サポートは未定)。
  • コンテンツプロキシ(対応中):file://〜のURLをJavaアプレットでなく、Fessでプロキシしてブラウザに渡します。認証がある場合はロール検索を適切に利用する必要があります。
  • サジェスト強化(検討中):サジェストまわりのロジックをリファクタリング予定
  • レスポンス形式の抽象化(検討中):様々なリクエストとレスポンス形式を簡単に作れるように処理を汎用化しようと考えています。これにより、Google MiniなどのGSA系のXML出力をできるようにして、移行をスムーズにできるようにするのを目指します。
  • 期限切れドキュメントの扱い:今までクロールセッション情報に有効期限を記述していましたが、SolrCloudなどの分散環境とかだとちょっと運用が面倒になるケースがあったりするので、ドキュメント自体に有効期限を持たせるようにしました。まぁ、この辺の実装は差分クロールが絡むと結構作るのが大変なのですが…。

という感じの変更が入るかと思います。それ以外にはSolrや関連ライブラリの更新が入ると思います。という感じで、年内にはリリースできたらなー、と思います。

Elasticsearch Quartzプラグイン

もともと、Elasticsearch River Webの中にQuartzを含めて、クロールの実行時間とか調整していたのだけど、Quartzを使って、指定時間に何かする系の処理は便利で他でも使う必要があったので、その機能だけ切り出してプラグインにしたのが、このElasticsearch Quartzプラグインです。それを使ってやりたいこととしては通知系の処理をするプラグインが必要かな、という感じです。なので、近いうちにElasticsearch Notificationプラグインを作ろうと考えています。まぁ、その前に、QuartzプラグインをMaven Centralにリリースするのが先ですが…。これも近いうちにやります。

Elasticsearch Authプラグイン

Elasticsearchを使うと認証とかどうしようかなっとか思ったりすることもあるかもしれませんが、それに対応するための作ったのがElasticsearch Authプラグインになります。まぁ、Elasticsearchへのアクセスをプロキシする途中経路の何かに認証を任せてしまっても良いのかもしれないけど、Elasticsearch単体でも認証できればいいんじゃないかな、と思って作っている感じです。ユーザー情報は拡張可能な実装にしていますが、デフォルトでは指定されたインデックスからユーザー情報を取得とかする感じです。実装すれば、ファイルに保存とか、LDAPとかからもユーザー情報を取得することができると思います。それらのユーザー情報を用いて、Elasticsearch Authプラグインでログインしてトークンを取得すれば、ElasticsearchにアクセスしたときにElasticsearch Authプラグインがフィルタして、トークンを用いてアクセス可能かを判断します。権限がなければ、Forbiddenが返却されます。アクセスできるかどうかのパス指定の情報もインデックスに保存してあり、HTTPのメソッドとの組み合わせで制御することができます。という感じで、Elasticsearch単体でいろいろとやっていこうとする人には便利かと思います。