2012-05-13 5 views
1

私は3.0 APIを使用しています「アクションでのLucene」の第2版を通じて自分の道を働き始めたが、著者は、コードでは、以下の方法設定のLucene IndexWriterマックスフィールド

private IndexWriter getIndexWriter() throws CorruptIndexException, LockObtainFailedException, IOException { 
    return new IndexWriter(directory, new WhitespaceAnalyzer(), IndexWriter.MaxFieldLength.Unlimited); 
    } 

との基本的なINdexWriterを作成します下の例では、ライターの最大フィールド長を無制限に設定する方法がわかりませんが、現在のAPIに従って変更を加えました。私はちょうどint 1000を挿入しました。これは現在のAPIで完全に無制限になっていますか?

private IndexWriter getIndexWriter() throws CorruptIndexException, LockObtainFailedException, IOException { 
     IndexWriterConfig iwc = new IndexWriterConfig(Version.LUCENE_36, 
       new LimitTokenCountAnalyzer(new WhitespaceAnalyzer(Version.LUCENE_36), 1000)); 
     return new IndexWriter(directory, iwc); 
    } 

ありがとう、これは好奇心のためです。

答えて

3

IndexWriterのjavadocは言う:

代わりにLimitTokenCountAnalyzerを使用@deprecated。 の動作がわずかに変更されていることに注意してください。この設定では、作成するトークンストリームごとに トークンの数が制限されますが、 トークンの総数が制限されます。これは多くの多値フィールド をインデックスする場合にのみ重要です。

つまり、ハードワイヤードの方法は素晴らしいアダプタ/デリゲートパターンに置き換えられています。

+0

ありがとう、javadocがシンクするためのいくつかの読書を取った – awfulHack

関連する問題