[PC] FlexLuceneのJapanese Analyzer(2/2)

FlexLuceneのJapanese Analyzerを使う(その2)

前回、FlexLuceneの検索用語をインデックス化するプログラムを公開しました。文末に設定方法に関しても少し記載したのですが、今回は、私が陥ったミスを紹介します。

Apache Lucene 入門 ~Java・オープンソース・全文検索システムの構築

中古価格
¥2,159から
(2017/9/22 17:54時点)

Visual Studioでの設定

Visual Studioの[ツール] > [NuGetパッケージマネージャー] > [ソリューションのNuGetパッケージの管理]を開くと、NuGetをグラフィカルに設定できる画面が表示されます。そこで、FlexLuceneと検索をかけると、FlexLucene v6.3.0がヒットします。

FlexLucene NuGet PackageManager

なので、これを選択して、更にソリューションを選択し、[インストール]を行っていました。しかし、このバージョンでは、IndexWriterのaddDocument()の際にJavaのIOExceptionを出して止まってしまいました。v6.3.では、JapaneseAnalyzerをサポートしたと記載されているのに、コンパイルは通るが実際の実行時にエラーになってしまいます。このエラーがどうしても解消できなくて、FlexLuceneを諦めようかと何度か思いました。

.NET開発テクノロジ入門2016年版Visual Studio 2015対応版

中古価格
¥2,400から
(2017/9/22 17:59時点)

DLLのダウンロード

Googleで何度となく解決方法を探っていたときに、「Lucene Japanese Analyzer」とJapaneseAnalyzerの間にスペースを入れて検索してみたら、実装のきっかけになったある人の投稿がひっかかりました。そして、それには、僕と同じエラーが生じていることも書いてあり、更に「解消した」との内容まで記載されていました。

ミソは、NuGetでFlexLuceneを導入するのではなく、ArticraftsフォルダーにあるDLLをダウンロードして、それを使うということでした。

https://github.com/FlexSearch/FlexLucene/tree/master/Artifacts

FlexLucene 参照

あとは、ダウンロードしたDLLをソリューションエクスプローラーにある[参照]を右クリックして[参照の追加]を表示させ、ダウンロードしたDLLを追加すればOKです。

まとめ

2回に分けて書いてしまいましたが、一連の作業は、以下の通りです。これで、サーバー上にあるデータフォルダー(@”\\server\data”)以下のHTMLファイルをインデックス作成するプログラムができました。インデックスは、Cドライブ(@”c:\temp\ldn-index”)に作成されます。次回は、このインデックスを使った検索プログラムを作りたいと思います。FlexLuceneにご興味を持っていただければ幸いです。

Translate »