lighter search holder

This commit is contained in:
kimchy 2010-05-17 17:50:32 +03:00
parent 23d2799d71
commit 45ae8f6a95
2 changed files with 8 additions and 9 deletions

View File

@ -150,7 +150,7 @@ public class RobinEngine extends AbstractIndexShardComponent implements Engine,
IndexReader indexReader = indexWriter.getReader();
IndexSearcher indexSearcher = new IndexSearcher(indexReader);
indexSearcher.setSimilarity(similarityService.defaultSearchSimilarity());
this.nrtResource = newAcquirableResource(new ReaderSearcherHolder(indexReader, indexSearcher));
this.nrtResource = newAcquirableResource(new ReaderSearcherHolder(indexSearcher));
} catch (IOException e) {
try {
indexWriter.rollback();
@ -257,7 +257,9 @@ public class RobinEngine extends AbstractIndexShardComponent implements Engine,
AcquirableResource<ReaderSearcherHolder> current = nrtResource;
IndexReader newReader = current.resource().reader().reopen(true);
if (newReader != current.resource().reader()) {
nrtResource = newAcquirableResource(new ReaderSearcherHolder(newReader));
IndexSearcher indexSearcher = new IndexSearcher(newReader);
indexSearcher.setSimilarity(similarityService.defaultSearchSimilarity());
nrtResource = newAcquirableResource(new ReaderSearcherHolder(indexSearcher));
current.markForClose();
}
}

View File

@ -31,21 +31,18 @@ import org.elasticsearch.util.lease.Releasable;
*/
public class ReaderSearcherHolder implements Releasable {
private final IndexReader indexReader;
private final IndexSearcher indexSearcher;
public ReaderSearcherHolder(IndexReader indexReader) {
this(indexReader, new IndexSearcher(indexReader));
this(new IndexSearcher(indexReader));
}
public ReaderSearcherHolder(IndexReader indexReader, IndexSearcher indexSearcher) {
this.indexReader = indexReader;
public ReaderSearcherHolder(IndexSearcher indexSearcher) {
this.indexSearcher = indexSearcher;
}
public IndexReader reader() {
return indexReader;
return indexSearcher.getIndexReader();
}
public IndexSearcher searcher() {
@ -59,7 +56,7 @@ public class ReaderSearcherHolder implements Releasable {
// do nothing
}
try {
indexReader.close();
indexSearcher.getIndexReader().close();
} catch (Exception e) {
// do nothing
}