Support creating Lucene indexes in-memory

Control this with a config option, which is the easiest way to get it
injected. Do not document the option as it should just be used for
tests.

Change-Id: Ic7d5dd5e7a3495079bacc2c2830feb0af1fe6188
This commit is contained in:
Dave Borowitz
2013-10-08 17:38:32 -07:00
parent 4652d348a4
commit ceeff43182
2 changed files with 20 additions and 6 deletions

View File

@@ -73,6 +73,7 @@ import org.apache.lucene.search.SearcherManager;
import org.apache.lucene.search.Sort;
import org.apache.lucene.search.SortField;
import org.apache.lucene.search.TopDocs;
import org.apache.lucene.store.RAMDirectory;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.Version;
import org.eclipse.jgit.errors.ConfigInvalidException;
@@ -172,10 +173,18 @@ public class LuceneChangeIndex implements ChangeIndex {
Version luceneVersion = checkNotNull(
LUCENE_VERSIONS.get(schema),
"unknown Lucene version for index schema: %s", schema);
openIndex = new SubIndex(new File(dir, CHANGES_OPEN),
getIndexWriterConfig(luceneVersion, cfg, "changes_open"));
closedIndex = new SubIndex(new File(dir, CHANGES_CLOSED),
getIndexWriterConfig(luceneVersion, cfg, "changes_closed"));
IndexWriterConfig openConfig =
getIndexWriterConfig(luceneVersion, cfg, "changes_open");
IndexWriterConfig closedConfig =
getIndexWriterConfig(luceneVersion, cfg, "changes_closed");
if (cfg.getBoolean("index", "lucene", "testInmemory", false)) {
openIndex = new SubIndex(new RAMDirectory(), "ramOpen", openConfig);
closedIndex = new SubIndex(new RAMDirectory(), "ramClosed", closedConfig);
} else {
openIndex = new SubIndex(new File(dir, CHANGES_OPEN), openConfig);
closedIndex = new SubIndex(new File(dir, CHANGES_CLOSED), closedConfig);
}
}
@Override