From 45ae8f6a95768de768d7e76b5c38115c2841991b Mon Sep 17 00:00:00 2001 From: kimchy Date: Mon, 17 May 2010 17:50:32 +0300 Subject: [PATCH] lighter search holder --- .../elasticsearch/index/engine/robin/RobinEngine.java | 6 ++++-- .../util/lucene/ReaderSearcherHolder.java | 11 ++++------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/engine/robin/RobinEngine.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/engine/robin/RobinEngine.java index 2c5be0abece..0c082cef59d 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/engine/robin/RobinEngine.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/engine/robin/RobinEngine.java @@ -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 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(); } } diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/util/lucene/ReaderSearcherHolder.java b/modules/elasticsearch/src/main/java/org/elasticsearch/util/lucene/ReaderSearcherHolder.java index fbe53769f6c..def949b82a8 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/util/lucene/ReaderSearcherHolder.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/util/lucene/ReaderSearcherHolder.java @@ -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 }