Fessのいいねっぽい機能

Fess 3くらいの頃にもう新規に機能追加するネタもないだろうと思っていたけど、相変わらずに、ガンガン機能を追加してFess 6まで来ています。そんでもって、またまた今までのように機能を追加して、Fess 7を目指しています。Fess 7ではメジャーバージョンアップに相応しい感じの機能追加がされることでしょう。たとえば、今までは bigramベースの検索でしたが、次はSolrの機能も使ったりして、言語自動判別して、bigramと形態素解析のハイブリットで検索がデフォルトになります。あとは、いいねっぽい機能を追加して(Fess的には投票機能になります)、良い検索結果を送信してもらって、そのドキュメントの検索スコアが上にくるような機能も付け加えてあります(デフォルトではHttpSessionベースになりますが、汎用的に作ってあるので実装すれば他のシステムとかとも連携できるはず)。あとは、何をしたかいまいち思い出せないくらい細かい機能修正をしてます(チケット見ないと思い出せない)。そんな感じで、いつになったら、機能を追加しなくて良くなるのかわかりませんが、引き続きよろしくお願いしますー。

インデックス生成が遅い?

Fessのインデックス生成が遅い的なコメントをもらうケースがあるので、コメントしておきます。Fessでのインデックス生成プロセスはクロールと (Solrでの) インデックス生成がパラレルに実行されています。まぁ、実際に多くの時間を使っているのがクロールの部分になります。クロールの時間の方はクロールの多重度とクロールの間隔に依存します。ですので、インデックス生成を実行しているマシンに合わせて、多重度を上げて、間隔を短くすればクロールの時間を短くすることができます。一方、Solrでの インデックス生成はSolr的にコミットまたはオプティマイズを実行するだけなので、クロールの時間と比べると微々たるものです。というわけで、クロールの多重度と間隔を調整すれば多くの場合で問題にならない気がします。まぁ、その辺の実装は工夫されていると思います(Solrを熟知している人が作れば話は別ですが、そうでない人がSolrでゼロから作ったりしたものよりはパフォーマンスは良いはずかと…)。そんな感じで、遅いようなら多重度と間隔を調整してね、という感じで、それ以上の調整が必要なら商用サポートをよろしくお願いします、という感じになるかと思います。

Solr 3.6のschema.xmlにあるtext_*フィールドたち

Solr 3.6で各言語用にtext_*的なフィールド型が追加されているけど、ざっくりどんな言語が使えるかまとめておく。

Arabic ar
Bulgarian bg
Catalan ca
Czech cz
Danish da
German de
Greek el
Spanish es
Basque eu
Persian fa
Finnish fi
French fr
Irish ga
Galician gl
Hindi hi
Hungarian hu
Armenian hy
Indonesian id
Italian it
Japanese ja
Latvian lv
Dutch nl
Norwegian no
Portuguese pt
Romanian ro
Russian ru
Swedish sv
Thai th
Turkish tr
CJK zh, ja, ko

まぁ、言語検出のところもそうなんだけど、zh問題は大丈夫なのかなっていうのは気になる(つまり、zhは扱いが微妙だから、zh_CNとzh_TWを厳密に分けて考えたほうが良い。まぁ、技術的な理由じゃなくて、政治的な感じだけど・・・)。
Fessでもtext_*のフィールド型は使えるようにする予定。それらに対応するダイナミックフィールドも追加します。そんでそれらをハンドリングできるように実装します(この辺もうまく扱えるのがFessのメリットになっていくのかも)。