差分クロール

Fess 3.0 のやりたいことリストで書き忘れてたけど、差分クロールを実装してみた。今までは Last Modifed を気にせず、GET しにいっていたけど、前回クロールで取得していたら、HEAD で Last Modified を取得・比較して、更新されていたら GET しにいって、インデックスを更新する。差分クロールをするかどうかは管理画面から変更可能な感じ。差分クロールすると外部へのコンテンツ取得の負荷は下がるけど、前回データが Solr の中にあるので(つまりSolrに聞きにいくことになる)、Solrへの負荷が上がる感じ。というわけで、それを踏まえて利用するかどうかを決めるのが良いかと。

次は、外部から接続可能なAPIを作ることかな…。

Fess 3.0 でやりたこと

Fess 3.0 でやりたいことをあげてみる。

  • Solr 1.4対応
  • Solrの設定をマルチコアにしておく
  • クロール処理のプロセス化
  • 設定ウィザード
  • ヘルプ機能

Solr 1.4は前から移行しようと思ってたことだけど、マルチコア設定は一つのSolrで複数のFessを扱いやすいようにしたいのでデフォルトでマルチコアにしやすい設定ファイル構成に変えました。Solrの移行系作業は既に完了して、クロール処理のプロセス化に取り組み中。今まではスレッドでクロール処理をしていたのだけど、これだとたとえばJava自体のバグとか踏んだりするとデッドロックになる可能性があり、システム自体を立ち上げ直す必要がある。というわけで、別プロセスとしてクロール処理をすることで、そうなっても強制終了することができる。同じプロセス内のスレッドだと何ともしようがないからね。最後の二つは使いやすくしたいので、考え中。ルータの設定とかだと、設定ウィザードみたいなシンプルな設定をよく見るから、そんな感じで設定もできるようにしたい。ヘルプ機能はHudsonのようにフォームの右側にヘルプアイコンを用意しておいて、クリックするとヘルプが表示されるのをイメージしている。そんな感じで、進めていこうかとおもってますー。

Fessで作るApache Solrベースの検索サーバー ~ モバイル編

CodeZine向けに書いた記事が掲載されましたー。今回は、携帯端末で Fess をどう使うのか?というあたりを書いてます。

http://codezine.jp/article/detail/4527

次は、ユーザーのログイン状態によって、どのように検索結果を出しわけるか、というマニアックなテーマにしようかと思ってます。