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

View File

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