mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-09 06:25:07 +00:00
lighter search holder
This commit is contained in:
parent
23d2799d71
commit
45ae8f6a95
@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user