[PC] FlexLuceneのJapanese Analyzer(2/2)
FlexLuceneのJapanese Analyzerを使う(その2)
前回、FlexLuceneの検索用語をインデックス化するプログラムを公開しました。文末に設定方法に関しても少し記載したのですが、今回は、私が陥ったミスを紹介します。
Apache Lucene 入門 ~Java・オープンソース・全文検索システムの構築 中古価格 |
Visual Studioでの設定
Visual Studioの[ツール] > [NuGetパッケージマネージャー] > [ソリューションのNuGetパッケージの管理]を開くと、NuGetをグラフィカルに設定できる画面が表示されます。そこで、FlexLuceneと検索をかけると、FlexLucene v6.3.0がヒットします。
なので、これを選択して、更にソリューションを選択し、[インストール]を行っていました。しかし、このバージョンでは、IndexWriterのaddDocument()の際にJavaのIOExceptionを出して止まってしまいました。v6.3.では、JapaneseAnalyzerをサポートしたと記載されているのに、コンパイルは通るが実際の実行時にエラーになってしまいます。このエラーがどうしても解消できなくて、FlexLuceneを諦めようかと何度か思いました。
.NET開発テクノロジ入門2016年版Visual Studio 2015対応版 中古価格 |
DLLのダウンロード
Googleで何度となく解決方法を探っていたときに、「Lucene Japanese Analyzer」とJapaneseAnalyzerの間にスペースを入れて検索してみたら、実装のきっかけになったある人の投稿がひっかかりました。そして、それには、僕と同じエラーが生じていることも書いてあり、更に「解消した」との内容まで記載されていました。
ミソは、NuGetでFlexLuceneを導入するのではなく、ArticraftsフォルダーにあるDLLをダウンロードして、それを使うということでした。
https://github.com/FlexSearch/FlexLucene/tree/master/Artifacts
あとは、ダウンロードしたDLLをソリューションエクスプローラーにある[参照]を右クリックして[参照の追加]を表示させ、ダウンロードしたDLLを追加すればOKです。
まとめ
2回に分けて書いてしまいましたが、一連の作業は、以下の通りです。これで、サーバー上にあるデータフォルダー(@”\\server\data”)以下のHTMLファイルをインデックス作成するプログラムができました。インデックスは、Cドライブ(@”c:\temp\ldn-index”)に作成されます。次回は、このインデックスを使った検索プログラムを作りたいと思います。FlexLuceneにご興味を持っていただければ幸いです。