storage:// を追加

Fess 13.5からはMinIO連携が入る予定ですが、MinIOへのアクセスをstorage://という新たなプロトコルで追加します。なので、ファイルクロールの設定でstorage://バケット名/ とすることでクロールすることができます。

まず、MinIOを以下のような感じで起動しておきます。

docker run -p 9000:9000 \
   -e "MINIO_ACCESS_KEY=AKIAIOSFODNN7EXAMPLE" \
   -e "MINIO_SECRET_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \
   minio/minio server /data

Fessのクロール設定的には、たとえば、fessというバケット名であれば

パス:storage://fess/
設定パラメータ:
client.endpoint=http://localhost:9000
client.accessKey=AKIAIOSFODNN7EXAMPLE
client.secretKey=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

という感じになります。あとは、普通にfessバケット配下をインデックスしてくれます。

MinIOはバックエンドで動いている想定なので、検索結果のリンクをクリックすると、Fessのコンテンツプロキシ機能によって、MinIOに直接ではなく、Fess経由で取得することができます。これにより、Fessへのアクセス権限を用いて管理することもできます。

MinIO自体はゲートウェイ機能もあるので、AWS S3を対象にできたり、GCPやAzureなども同様にクロールすることができるようになります。

FessのEOL日付の変更

現在は、バージョンx.y.zのときはバージョンx.y.0をリリースした日付から18ヶ月後にしていたのですが、FessはElasticsearchがリリースされてからちょっと時間が経ってからリリースしていることもあり、Fessより先にElasticsearchがEOLされてしまっている状態になってます。これはこれで微妙だなと前から思っていたのですが、微妙なのでシンプルに、対応するElasticsearchのバージョンのEOLに合わせようと思います。EOL期限以上のサポートが必要な場合は商用サポートを参照してください。

コードリブズの企業ページを作る

codelibs.coでちょこちょこ更新していているけど、やりだすと無限に時間が消費される気がしている今日この頃…。いろいろと作っていく流れで、LinkedinFacebookのページも作ってみたりと。とはいえ、直近で特にコメントを投稿する内容もないので、コンテンツがない…。運用方法とかはやりながら考えていくしかないかな。

株式会社コードリブズ

FessなどをGitHubで管理しているCodeLibsだけど、このたび、2019年11月で株式会社コードリブズとして法人化しました。まだ、細かい手続きはいろいろと残っている感じではありますが、法人化作業の一山越えた感じがするので。

で、CodeLibsが株式会社になったわけですが、別にFessがオープンソースでなくなったりとか、何か起こるわけではないです。Fessの商用サポートとかは今までどおりに株式会社エヌツーエスエムが提供しますし、GitHubにも今までのようにオープンソースとしていろいろと公開していくと思います。最近、Fessの範疇を超える話とかが個人的には多いため、それを今までのやり方とは切り離して、5年先や10年先に生き残るようなプロダクトを考えていけるようにするためにCodeLibsとして法人化した感じです。(CodeLibsが法人化したというだけで、今までのロールは今まで通りあるので個人的にも何も変わってないですが…)

という感じで、検索技術やAI(機械学習やデータサイエンス)あたりを中心にいろいろとできれば、と思っていますので、何か面白い話があればお知らせいただければと思います。

Fess 13.5系を始める

Fess 13.4系にもちょこちょこ機能追加していってしまった気がするが、あまりやりすぎると商用での導入で問題が置きても困るので、そろそろ大きめな機能追加も入れたいところなので、13.5系を始めることにした。

13.4系はcodesearchを意識した変更が多く入った気がするけど、13.5系は分析基盤として使えるような機能追加をしたいと考えているところ。細々とした修正は、13.4系にも必要に応じてバックポートしていくけど、大きめのやつはストレージとの連携が必要かなと考えている。画面とかいろいろと作るのは面倒なので、とりあえず、S3互換だし、minioを上手く使えないかなと考え始めている。ちょっとうまくいくかは不明だけど、これから検討しようかと。minioを使っておけば、導入時に場合によっては普通にS3とかもできるだろうし。

まぁ、その後はPython連携とかを考えないといけないと思っているけど、まずは、一歩ずつ…。