Apache Lucineのソースを解析する

NetBeansを使って、Apache Luceneソースコードを解析している。
Luceneは、Apacheプロジェクトの中の検索エンジンのプロジェクトで、全文検索等をサポートしている。

全文検索のほかにも、様々なクエリーをかけたり、クエリーをいくつかANDやORで合成したり、いろいろな検索のアルゴリズムを持っている。
主な構造としては、クエリーとフィルターという2通りの検索フレームワークを持っていて、どちらも使いやすい。
内部では、java.util.BitSetが使われていて、これを新しく作って合成(OR的演算)したり絞り込んだり(AND的演算)している。


なんだか、自前でSQLのパーサーを書いて、内部の実行エンジンを作ろうとするときに、この辺の仕組みを利用すればかなりなエンジンが作れそうだ。


このへんの、Luceneの拡張し方を記事にしたら、マニアックな読者にうけそうだ。