如何在Lucene中正确使用多重读取器API?

时间:2012-01-22 15:14:15

标签: java lucene

我有几个索引,但想知道哪种使用方式是正确的。

IndexReader r1= IndexReader.open(...)
IndexReader r2= IndexReader.open(...)
MultiReader mr= new MultiReader(r1,r2)

1)

IndexSearcher s = new IndexSearcher(mr);

2)

IndexSearcher s = new IndexSearcher(mr,new IndexReader[]{r1,r2}....

哪一个是正确的?

1 个答案:

答案 0 :(得分:1)

你应该坚持使用Lucene API Doc,

IndexSearcher s = new IndexSearcher(mr);

在Lucene Library的大多数版本中,接受子读取器的IndexSearcher的构造函数用法(附加的IndexSearchders数组)都标有警告,阻止它们的使用,

IndexSearcher s = new IndexSearcher(mr,new IndexReader[]{r1,r2}....

标有'警告:此API是实验性的,可能会在下一版本中以不兼容的方式更改。。我猜这些额外的构造函数选项引入的原因是为了促进内部Lucene子类化,请参阅LUCENE-1925上的评论