Elasticsearch River Web

ElasticsearchでfluentdとKibanaと組み合わせてログ集計するパターンはありがちかと思うけど、ウェブのコンテンツを定期的に収集するプラグイン(River)がほしいなっと思い、Elasticsearch River Webを作り始めました。まぁ、簡単にElasticsearch River Webを説明すると、Webクローラーです。内部的にはS2Robotを利用しているので、Fessと同じ感じでクロールすることができます。とはいえ、Fessは全文検索システムを目指していますが、このRiver Webはコンテンツ収集に焦点を当ててた感じになっています。クロールはFessもRiver Webも同じですが、River WebはWebスクレイピングをして、Elasticsearch内にドキュメントを生成していきます。つまり、CSSクエリーで特定のHTMLの場所を指定して、その得られた値をドキュメントのプロパティ(Solrでいうと、1つのフィールド)に格納していきます。なので、集めたいコンテンツの情報だけをインデックス化することができ、Kibanaとかで結果を分析用にいい感じで表示するとかができます。という感じで、River Webはウェブコンテンツの収集・解析などの用途で利用していければな、と考えています。

Fessのソースコードの移動

Fessのプロジェクト管理を今までSourceForge.jpで行なっていたけど、ソースコードの管理およびチケット(課題)管理をgithubに移行しました。移行理由としては、Fessの商用サポートも多くなり、商用サポートでは案件ごとに社内でソースコードを管理していて、subversionだとブランチとかマージとかを考えるのが辛くなってきたので、その辺を解決できるかな、と思い、githubに移すことにしました。ソースコードと課題管理以外のバイナリ配布、メーリングリスト、フォーラムなどは引き続きSF.jpで行います。というわけで、ソースコードまたは課題管理の情報を参照されたい場合は https://github.com/codelibs をご覧ください。

Maven Central Repositoryに配備する

オープンソースであれば、Maven Central RepositoryにSonatype OSS Maven Repository Usage Guideの手順で置くことができる。やることとして、SonatypeのJIRAにアカウントを作成してチケットを上げて、gpgのキーを作っておいて、pom.xmlを変更してリリースすれば良い。あとは、Sonatypeのリポジトリ管理ツールでCloseしてReleaseする感じ。まぁ、一回やってしまうとこういうことね、という感じなのだけど、初めはわかりにくいかも…。そんな感じで、CodeLibsに置いてあったElasticsearchプラグインなどをCentralに置きました。CodeLibsのリポジトリはここです。そういえば、あとはドメインは持っておいたほうが良いのかも。そのパッケージ名以下で置くことになると思うので…。