我有几个索引,但想知道哪种使用方式是正确的。
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}....
哪一个是正确的?
答案 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上的评论