我开始尝试使用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);
}
谢谢,这只是为了好奇。
答案 0 :(得分:3)
IndexWriter
javadoc说:
@deprecated使用
LimitTokenCountAnalyzer
代替。请注意 behvaior略有改变 - 分析仪限制了数量 每个令牌流创建的令牌,而此设置限制 要索引的令牌总数。这只有你索引时才有意义 但是,许多多值领域。
因此,换句话说,硬连线方法已被替换为良好的适配器/委托模式。