设置Lucene IndexWriter最大字段

时间:2012-05-13 11:36:27

标签: lucene

我开始尝试使用3.0 API的第二版“Lucene in Action”,作者用以下方法创建了一个基本的INdexWriter

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

在代码中,我根据当前的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);
    }

谢谢,这只是为了好奇。

1 个答案:

答案 0 :(得分:3)

IndexWriter javadoc说:

  

@deprecated使用LimitTokenCountAnalyzer代替。请注意   behvaior略有改变 - 分析仪限制了数量   每个令牌流创建的令牌,而此设置限制   要索引的令牌总数。这只有你索引时才有意义   但是,许多多值领域。

因此,换句话说,硬连线方法已被替换为良好的适配器/委托模式。