2016-04-11 13 views
0

私は以下のコードを使って検索していますが、いくつかの方法でエラーが表示されます。Javaメソッド内のLuceneが見つかりません

FSDirectory.open(new File(indexDirectoryPath)); 
    writer = new IndexWriter(indexDirectory, 
    new StandardAnalyzer(),true, 
    IndexWriter.MaxFieldLength.UNLIMITED); 

このコードでは、openとMaxFieldLengthはエラーを示します。私はlucene 6.0.0を使用しています。

open()メソッドは、型FSDirectoryにおけるエラー

方法オープン(パス)

引数(ファイル)には適用されず、MaxFieldLengthに示す示す:

MaxFieldLengthは解決できないか、フィールドではありません

私はここで提供されているコードを使用:

http://www.tutorialspoint.com/lucene/lucene_first_application.htm 
+0

質問を編集してエラーを追加してください。 – Rao

+0

javadocでLuceneのバージョンを確認して、私が推測する問題を見つけ出すことができます。 – Dhaval

答えて

2

おそらくコードはLuceneの古いバージョンに対して書かれています。 新しいバージョンでは古いjava ioからjava nioに切り替わりました。 ですから、このようなものを使用します:FSDirectory.open(FileSystems.getDefault().getPath("yourPath", "index")

バージョン6.0ではIndexWriterがMaxFieldLengthと呼ばれるメンバーを持っていないLucene IndexWriter APIを参照してくださいします。

詳細なヘルプは、あなたにも移行ガイドの古いバージョンを調べるためにwan'tてmigration guide

で見つけることができます。

1

Luceneのドキュメントで[FSDirectory.open] [1]メソッドのドキュメントをチェックすると、Path引数以外のものが見つかります。 Paths.get(URI)メソッドを使用してURIからパスを取得できます。パスはJava 7の一部です。

関連する問題