[PC] Lucene.NET Ver. 4.8.0 beta-00005 ~Luceneの.NETへの移植版がKuromoji対応になる~
Lucene.NETのベータバージョンアップ
ほぼ2ヶ月前に記載させてもらったFlexLuceneを見つけた経緯の中で、Lucene.NETがJapaneseAnalyzerに対応していない旨を記載しました。
https://ichigo.hopto.org/2017/09/22/flexlucene_japaneseanalyzer/
その後はFlexLuceneに実装の舵をきっていたのですが、その記事を書いて1ヶ月後くらいのときにLucene.NETのVer.4.8.0のベータバージョンが上がったようです。beta-00005の存在を昨日知りました。
JapaneseAnalyzerの対応
beta-00005の紹介部分にJapaneseAnalyzerであるKuromojiが含まれていました。これで、日本語の形態素解析及び分かち書きができるようになったということで、Lucene.NETも全文検索ツールを作る上で十分なライブラリーになりました。
Lucene.NET vs. FlexLucene
簡単ではありますが、私の気づくpro/conを書いておきます。
優勢 | 劣勢 | |
---|---|---|
Lucene.NET | ・対応Frameworkが新しい .NET Framework 4.5, .NET Standard 1.6, 2.0 ・コンパイルサイズが小さい |
・Luceneのバージョンが古い (Ver.4.8.0) ・ベータバージョンである |
FlexLucene | ・LuceneのVersionが新しい(Ver. 6.3) 新機能が使える | ・IKVMが必要 ・.NET Framework 4.0以上のみ ・コンパイルサイズが大きい |
こう書くと、Lucene自体の機能は、Lucene.NETは古いのですが、対応プラットフォームを考えると、最先端です。もし、公に配布したいプログラムを書くのであれば、Lucene.NETの方が優位なのではないかと思い始めました。
まとめ
現在、FlexLuceneで作ったプログラムをまた、Luceneのバージョンの低いLucene.NETで書き直そうとは思いませんが、新たに全文検索ツールを作って配布を考える場合は、断然Lucene.NETの方が有利になってきました。今後、少し調査したいと思います。