diff --git a/contrib/analyzers/common/src/test/org/apache/lucene/analysis/query/QueryAutoStopWordAnalyzerTest.java b/contrib/analyzers/common/src/test/org/apache/lucene/analysis/query/QueryAutoStopWordAnalyzerTest.java index 374fc29398d..d2b403723e9 100644 --- a/contrib/analyzers/common/src/test/org/apache/lucene/analysis/query/QueryAutoStopWordAnalyzerTest.java +++ b/contrib/analyzers/common/src/test/org/apache/lucene/analysis/query/QueryAutoStopWordAnalyzerTest.java @@ -62,7 +62,7 @@ public class QueryAutoStopWordAnalyzerTest extends BaseTokenStreamTestCase { writer.addDocument(doc); } writer.close(); - reader = IndexReader.open(dir); + reader = IndexReader.open(dir, true); protectedAnalyzer = new QueryAutoStopWordAnalyzer(appAnalyzer); } diff --git a/contrib/analyzers/common/src/test/org/apache/lucene/analysis/shingle/ShingleAnalyzerWrapperTest.java b/contrib/analyzers/common/src/test/org/apache/lucene/analysis/shingle/ShingleAnalyzerWrapperTest.java index f0978d833f7..a7924e98462 100644 --- a/contrib/analyzers/common/src/test/org/apache/lucene/analysis/shingle/ShingleAnalyzerWrapperTest.java +++ b/contrib/analyzers/common/src/test/org/apache/lucene/analysis/shingle/ShingleAnalyzerWrapperTest.java @@ -79,7 +79,7 @@ public class ShingleAnalyzerWrapperTest extends BaseTokenStreamTestCase { writer.close(); - return new IndexSearcher(dir); + return new IndexSearcher(dir, true); } protected Hits queryParsingTest(Analyzer analyzer, String qs) throws Exception { diff --git a/contrib/ant/src/java/org/apache/lucene/ant/IndexTask.java b/contrib/ant/src/java/org/apache/lucene/ant/IndexTask.java index 2b6a47622a1..4bcef89ff53 100644 --- a/contrib/ant/src/java/org/apache/lucene/ant/IndexTask.java +++ b/contrib/ant/src/java/org/apache/lucene/ant/IndexTask.java @@ -27,6 +27,7 @@ import org.apache.lucene.document.Field; import org.apache.lucene.document.DateTools; import org.apache.lucene.index.IndexWriter; import org.apache.lucene.index.Term; +import org.apache.lucene.store.FSDirectory; import org.apache.lucene.search.Hits; import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.Searcher; @@ -256,133 +257,138 @@ public class IndexTask extends Task { create = true; } - Searcher searcher = null; - boolean checkLastModified = false; - if (!create) { - try { - searcher = new IndexSearcher(indexDir.getAbsolutePath()); - checkLastModified = true; - } catch (IOException ioe) { - log("IOException: " + ioe.getMessage()); - // Empty - ignore, which indicates to index all - // documents - } - } - - log("checkLastModified = " + checkLastModified, Project.MSG_VERBOSE); - - IndexWriter writer = - new IndexWriter(indexDir, analyzer, create, IndexWriter.MaxFieldLength.LIMITED); - - writer.setUseCompoundFile(useCompoundIndex); - int totalFiles = 0; - int totalIndexed = 0; - int totalIgnored = 0; + FSDirectory dir = FSDirectory.open(indexDir); try { - writer.setMergeFactor(mergeFactor); - - for (int i = 0; i < rcs.size(); i++) { - ResourceCollection rc = (ResourceCollection) rcs.elementAt(i); - if (rc.isFilesystemOnly()) { - Iterator resources = rc.iterator(); - while (resources.hasNext()) { - Resource r = (Resource) resources.next(); - if (!r.isExists() || !(r instanceof FileResource)) { - continue; - } - - totalFiles++; - - File file = ((FileResource) r).getFile(); - - if (!file.exists() || !file.canRead()) { - throw new BuildException("File \"" + - file.getAbsolutePath() - + "\" does not exist or is not readable."); - } - - boolean indexIt = true; - - if (checkLastModified) { - Term pathTerm = - new Term("path", file.getPath()); - TermQuery query = - new TermQuery(pathTerm); - Hits hits = searcher.search(query); - - // if document is found, compare the - // indexed last modified time with the - // current file - // - don't index if up to date - if (hits.length() > 0) { - Document doc = hits.doc(0); - String indexModified = - doc.get("modified").trim(); - if (indexModified != null) { - long lastModified = 0; - try { - lastModified = DateTools.stringToTime(indexModified); - } catch (ParseException e) { - // if modified time is not parsable, skip - } - if (lastModified == file.lastModified()) { - // TODO: remove existing document - indexIt = false; - } - } - } - } - - if (indexIt) { - try { - log("Indexing " + file.getPath(), - Project.MSG_VERBOSE); - Document doc = - handler.getDocument(file); - - if (doc == null) { - totalIgnored++; - } else { - // Add the path of the file as a field named "path". Use a Keyword field, so - // that the index stores the path, and so that the path is searchable - doc.add(new Field("path", file.getPath(), Field.Store.YES, Field.Index.NOT_ANALYZED)); - - // Add the last modified date of the file a field named "modified". Use a - // Keyword field, so that it's searchable, but so that no attempt is made - // to tokenize the field into words. - doc.add(new Field("modified", DateTools.timeToString(file.lastModified(), DateTools.Resolution.MILLISECOND), Field.Store.YES, Field.Index.NOT_ANALYZED)); - - writer.addDocument(doc); - totalIndexed++; - } - } catch (DocumentHandlerException e) { - throw new BuildException(e); - } - } - } - // for j + Searcher searcher = null; + boolean checkLastModified = false; + if (!create) { + try { + searcher = new IndexSearcher(dir, true); + checkLastModified = true; + } catch (IOException ioe) { + log("IOException: " + ioe.getMessage()); + // Empty - ignore, which indicates to index all + // documents } - // if (fs != null) } - // for i - writer.optimize(); - } - //try - finally { - // always make sure everything gets closed, - // no matter how we exit. - writer.close(); - if (searcher != null) { - searcher.close(); + log("checkLastModified = " + checkLastModified, Project.MSG_VERBOSE); + + IndexWriter writer = + new IndexWriter(dir, analyzer, create, IndexWriter.MaxFieldLength.LIMITED); + + writer.setUseCompoundFile(useCompoundIndex); + int totalFiles = 0; + int totalIndexed = 0; + int totalIgnored = 0; + try { + writer.setMergeFactor(mergeFactor); + + for (int i = 0; i < rcs.size(); i++) { + ResourceCollection rc = (ResourceCollection) rcs.elementAt(i); + if (rc.isFilesystemOnly()) { + Iterator resources = rc.iterator(); + while (resources.hasNext()) { + Resource r = (Resource) resources.next(); + if (!r.isExists() || !(r instanceof FileResource)) { + continue; + } + + totalFiles++; + + File file = ((FileResource) r).getFile(); + + if (!file.exists() || !file.canRead()) { + throw new BuildException("File \"" + + file.getAbsolutePath() + + "\" does not exist or is not readable."); + } + + boolean indexIt = true; + + if (checkLastModified) { + Term pathTerm = + new Term("path", file.getPath()); + TermQuery query = + new TermQuery(pathTerm); + Hits hits = searcher.search(query); + + // if document is found, compare the + // indexed last modified time with the + // current file + // - don't index if up to date + if (hits.length() > 0) { + Document doc = hits.doc(0); + String indexModified = + doc.get("modified").trim(); + if (indexModified != null) { + long lastModified = 0; + try { + lastModified = DateTools.stringToTime(indexModified); + } catch (ParseException e) { + // if modified time is not parsable, skip + } + if (lastModified == file.lastModified()) { + // TODO: remove existing document + indexIt = false; + } + } + } + } + + if (indexIt) { + try { + log("Indexing " + file.getPath(), + Project.MSG_VERBOSE); + Document doc = + handler.getDocument(file); + + if (doc == null) { + totalIgnored++; + } else { + // Add the path of the file as a field named "path". Use a Keyword field, so + // that the index stores the path, and so that the path is searchable + doc.add(new Field("path", file.getPath(), Field.Store.YES, Field.Index.NOT_ANALYZED)); + + // Add the last modified date of the file a field named "modified". Use a + // Keyword field, so that it's searchable, but so that no attempt is made + // to tokenize the field into words. + doc.add(new Field("modified", DateTools.timeToString(file.lastModified(), DateTools.Resolution.MILLISECOND), Field.Store.YES, Field.Index.NOT_ANALYZED)); + + writer.addDocument(doc); + totalIndexed++; + } + } catch (DocumentHandlerException e) { + throw new BuildException(e); + } + } + } + // for j + } + // if (fs != null) + } + // for i + + writer.optimize(); } + //try + finally { + // always make sure everything gets closed, + // no matter how we exit. + writer.close(); + if (searcher != null) { + searcher.close(); + } + } + + Date end = new Date(); + + log(totalIndexed + " out of " + totalFiles + " indexed (" + + totalIgnored + " ignored) in " + (end.getTime() - start.getTime()) + + " milliseconds"); + } finally { + dir.close(); } - - Date end = new Date(); - - log(totalIndexed + " out of " + totalFiles + " indexed (" + - totalIgnored + " ignored) in " + (end.getTime() - start.getTime()) + - " milliseconds"); } public static class HandlerConfig implements DynamicConfigurator { diff --git a/contrib/ant/src/test/org/apache/lucene/ant/IndexTaskTest.java b/contrib/ant/src/test/org/apache/lucene/ant/IndexTaskTest.java index 0ece3deea45..d431c69ad8c 100644 --- a/contrib/ant/src/test/org/apache/lucene/ant/IndexTaskTest.java +++ b/contrib/ant/src/test/org/apache/lucene/ant/IndexTaskTest.java @@ -30,6 +30,7 @@ import org.apache.lucene.search.Hits; import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.Query; import org.apache.lucene.search.Searcher; +import org.apache.lucene.store.FSDirectory; import org.apache.tools.ant.Project; import org.apache.tools.ant.types.FileSet; @@ -43,10 +44,11 @@ public class IndexTaskTest extends TestCase { "org.apache.lucene.ant.FileExtensionDocumentHandler"; private String docsDir = System.getProperty("docs.dir"); - private String indexDir = System.getProperty("index.dir"); + private File indexDir = new File(System.getProperty("index.dir")); private Searcher searcher; private Analyzer analyzer; + private FSDirectory dir; /** @@ -64,11 +66,12 @@ public class IndexTaskTest extends TestCase { task.addFileset(fs); task.setOverwrite(true); task.setDocumentHandler(docHandler); - task.setIndex(new File(indexDir)); + task.setIndex(indexDir); task.setProject(project); task.execute(); - searcher = new IndexSearcher(indexDir); + dir = FSDirectory.open(indexDir); + searcher = new IndexSearcher(dir, true); analyzer = new StopAnalyzer(); } @@ -87,6 +90,7 @@ public class IndexTaskTest extends TestCase { */ public void tearDown() throws IOException { searcher.close(); + dir.close(); } } diff --git a/contrib/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/PrintReaderTask.java b/contrib/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/PrintReaderTask.java index b3f6158ef90..2be81f2de92 100644 --- a/contrib/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/PrintReaderTask.java +++ b/contrib/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/PrintReaderTask.java @@ -43,7 +43,7 @@ public class PrintReaderTask extends PerfTask { Config config = getRunData().getConfig(); IndexReader r = null; if (userData == null) - r = IndexReader.open(dir); + r = IndexReader.open(dir, true); else r = OpenReaderTask.openCommitPoint(userData, dir, config, true); System.out.println("--> numDocs:"+r.numDocs()+" dels:"+r.numDeletedDocs()); diff --git a/contrib/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/ReadTask.java b/contrib/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/ReadTask.java index 815749af6f3..de6b06d247d 100644 --- a/contrib/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/ReadTask.java +++ b/contrib/benchmark/src/java/org/apache/lucene/benchmark/byTask/tasks/ReadTask.java @@ -67,7 +67,7 @@ public abstract class ReadTask extends PerfTask { IndexReader ir = getRunData().getIndexReader(); if (ir == null) { Directory dir = getRunData().getDirectory(); - ir = IndexReader.open(dir); + ir = IndexReader.open(dir, true); closeReader = true; //res++; //this is confusing, comment it out } diff --git a/contrib/benchmark/src/java/org/apache/lucene/benchmark/byTask/utils/Algorithm.java b/contrib/benchmark/src/java/org/apache/lucene/benchmark/byTask/utils/Algorithm.java index 296c87bcede..3dc8d024b12 100644 --- a/contrib/benchmark/src/java/org/apache/lucene/benchmark/byTask/utils/Algorithm.java +++ b/contrib/benchmark/src/java/org/apache/lucene/benchmark/byTask/utils/Algorithm.java @@ -57,16 +57,14 @@ public class Algorithm { currSequence.setDepth(0); String taskPackage = PerfTask.class.getPackage().getName() + "."; - Class paramClass[] = {PerfRunData.class}; - PerfRunData paramObj[] = {runData}; - while (stok.nextToken() != StreamTokenizer.TT_EOF) { switch(stok.ttype) { case StreamTokenizer.TT_WORD: String s = stok.sval; - Constructor cnstr = Class.forName(taskPackage+s+"Task").getConstructor(paramClass); - PerfTask task = (PerfTask) cnstr.newInstance(paramObj); + Constructor cnstr = Class.forName(taskPackage+s+"Task") + .asSubclass(PerfTask.class).getConstructor(PerfRunData.class); + PerfTask task = cnstr.newInstance(runData); task.setDisableCounting(isDisableCountNextTask); isDisableCountNextTask = false; currSequence.addTask(task); diff --git a/contrib/benchmark/src/java/org/apache/lucene/benchmark/quality/trec/QueryDriver.java b/contrib/benchmark/src/java/org/apache/lucene/benchmark/quality/trec/QueryDriver.java index f3d7b37d286..4296a865d38 100644 --- a/contrib/benchmark/src/java/org/apache/lucene/benchmark/quality/trec/QueryDriver.java +++ b/contrib/benchmark/src/java/org/apache/lucene/benchmark/quality/trec/QueryDriver.java @@ -24,6 +24,7 @@ import org.apache.lucene.benchmark.quality.utils.SubmissionReport; import org.apache.lucene.benchmark.quality.*; import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.Searcher; +import org.apache.lucene.store.FSDirectory; import java.io.BufferedReader; import java.io.File; @@ -41,7 +42,8 @@ public class QueryDriver { File topicsFile = new File(args[0]); File qrelsFile = new File(args[1]); - Searcher searcher = new IndexSearcher(args[3]); + FSDirectory dir = FSDirectory.open(new File(args[3])); + Searcher searcher = new IndexSearcher(dir, true); int maxResults = 1000; String docNameField = "docname"; diff --git a/contrib/benchmark/src/java/org/apache/lucene/benchmark/quality/utils/QualityQueriesFinder.java b/contrib/benchmark/src/java/org/apache/lucene/benchmark/quality/utils/QualityQueriesFinder.java index 820b832b09e..2100fa7eb9d 100755 --- a/contrib/benchmark/src/java/org/apache/lucene/benchmark/quality/utils/QualityQueriesFinder.java +++ b/contrib/benchmark/src/java/org/apache/lucene/benchmark/quality/utils/QualityQueriesFinder.java @@ -85,7 +85,7 @@ public class QualityQueriesFinder { private String [] bestTerms(String field,int numTerms) throws IOException { PriorityQueue pq = new TermsDfQueue(numTerms); - IndexReader ir = IndexReader.open(dir); + IndexReader ir = IndexReader.open(dir, true); try { int threshold = ir.maxDoc() / 10; // ignore words too common. TermEnum terms = ir.terms(new Term(field,"")); diff --git a/contrib/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksLogic.java b/contrib/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksLogic.java index 446710e956b..1218d4a1e6e 100755 --- a/contrib/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksLogic.java +++ b/contrib/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksLogic.java @@ -94,7 +94,7 @@ public class TestPerfTasksLogic extends TestCase { // now we should be able to open the index for write. IndexWriter iw = new IndexWriter(benchmark.getRunData().getDirectory(),null,false, IndexWriter.MaxFieldLength.LIMITED); iw.close(); - IndexReader ir = IndexReader.open(benchmark.getRunData().getDirectory()); + IndexReader ir = IndexReader.open(benchmark.getRunData().getDirectory(), true); assertEquals("1000 docs were added to the index, this is what we expect to find!",1000,ir.numDocs()); ir.close(); } @@ -153,7 +153,7 @@ public class TestPerfTasksLogic extends TestCase { // now we should be able to open the index for write. IndexWriter iw = new IndexWriter(benchmark.getRunData().getDirectory(),null,false, IndexWriter.MaxFieldLength.LIMITED); iw.close(); - IndexReader ir = IndexReader.open(benchmark.getRunData().getDirectory()); + IndexReader ir = IndexReader.open(benchmark.getRunData().getDirectory(), true); assertEquals("1000 docs were added to the index, this is what we expect to find!",1000,ir.numDocs()); ir.close(); } @@ -191,7 +191,7 @@ public class TestPerfTasksLogic extends TestCase { // now we should be able to open the index for write. IndexWriter iw = new IndexWriter(benchmark.getRunData().getDirectory(),null,false,IndexWriter.MaxFieldLength.UNLIMITED); iw.close(); - IndexReader ir = IndexReader.open(benchmark.getRunData().getDirectory()); + IndexReader ir = IndexReader.open(benchmark.getRunData().getDirectory(), true); assertEquals("1000 docs were added to the index, this is what we expect to find!",1000,ir.numDocs()); ir.close(); } @@ -263,7 +263,7 @@ public class TestPerfTasksLogic extends TestCase { // now we should be able to open the index for write. IndexWriter iw = new IndexWriter(benchmark.getRunData().getDirectory(),null,false,IndexWriter.MaxFieldLength.UNLIMITED); iw.close(); - IndexReader ir = IndexReader.open(benchmark.getRunData().getDirectory()); + IndexReader ir = IndexReader.open(benchmark.getRunData().getDirectory(), true); assertEquals("1 docs were added to the index, this is what we expect to find!",1,ir.numDocs()); ir.close(); } @@ -292,7 +292,7 @@ public class TestPerfTasksLogic extends TestCase { Benchmark benchmark = execBenchmark(algLines); // 3. test number of docs in the index - IndexReader ir = IndexReader.open(benchmark.getRunData().getDirectory()); + IndexReader ir = IndexReader.open(benchmark.getRunData().getDirectory(), true); int ndocsExpected = 20; // Reuters20ContentSource exhausts after 20 docs. assertEquals("wrong number of docs in the index!", ndocsExpected, ir.numDocs()); ir.close(); @@ -354,7 +354,7 @@ public class TestPerfTasksLogic extends TestCase { IndexWriter iw = new IndexWriter(benchmark.getRunData().getDirectory(),null,false,IndexWriter.MaxFieldLength.UNLIMITED); iw.close(); - IndexReader ir = IndexReader.open(benchmark.getRunData().getDirectory()); + IndexReader ir = IndexReader.open(benchmark.getRunData().getDirectory(), true); assertEquals(numLines + " lines were created but " + ir.numDocs() + " docs are in the index", numLines, ir.numDocs()); ir.close(); @@ -398,7 +398,7 @@ public class TestPerfTasksLogic extends TestCase { } // Separately count how many tokens are actually in the index: - IndexReader reader = IndexReader.open(benchmark.getRunData().getDirectory()); + IndexReader reader = IndexReader.open(benchmark.getRunData().getDirectory(), true); assertEquals(NUM_DOCS, reader.numDocs()); TermEnum terms = reader.terms(); @@ -442,7 +442,7 @@ public class TestPerfTasksLogic extends TestCase { Benchmark benchmark = execBenchmark(algLines); // 3. test number of docs in the index - IndexReader ir = IndexReader.open(benchmark.getRunData().getDirectory()); + IndexReader ir = IndexReader.open(benchmark.getRunData().getDirectory(), true); int ndocsExpected = 2 * 20; // Reuters20ContentSource exhausts after 20 docs. assertEquals("wrong number of docs in the index!", ndocsExpected, ir.numDocs()); ir.close(); @@ -524,7 +524,7 @@ public class TestPerfTasksLogic extends TestCase { Benchmark benchmark = execBenchmark(algLines); // 3. test number of docs in the index - IndexReader ir = IndexReader.open(benchmark.getRunData().getDirectory()); + IndexReader ir = IndexReader.open(benchmark.getRunData().getDirectory(), true); int ndocsExpected = 20; // Reuters20ContentSource exhausts after 20 docs. assertEquals("wrong number of docs in the index!", ndocsExpected, ir.numDocs()); ir.close(); @@ -560,7 +560,7 @@ public class TestPerfTasksLogic extends TestCase { Benchmark benchmark = execBenchmark(algLines); // 3. test number of docs in the index - IndexReader ir = IndexReader.open(benchmark.getRunData().getDirectory()); + IndexReader ir = IndexReader.open(benchmark.getRunData().getDirectory(), true); int ndocsExpected = 20; // Reuters20ContentSource exhausts after 20 docs. assertEquals("wrong number of docs in the index!", ndocsExpected, ir.numDocs()); ir.close(); @@ -604,7 +604,7 @@ public class TestPerfTasksLogic extends TestCase { benchmark.getRunData().getIndexWriter().close(); // 3. test number of docs in the index - IndexReader ir = IndexReader.open(benchmark.getRunData().getDirectory()); + IndexReader ir = IndexReader.open(benchmark.getRunData().getDirectory(), true); int ndocsExpected = 20; // Reuters20ContentSource exhausts after 20 docs. assertEquals("wrong number of docs in the index!", ndocsExpected, ir.numDocs()); ir.close(); @@ -649,7 +649,7 @@ public class TestPerfTasksLogic extends TestCase { benchmark.getRunData().getIndexWriter().close(); // 3. test number of docs in the index - IndexReader ir = IndexReader.open(benchmark.getRunData().getDirectory()); + IndexReader ir = IndexReader.open(benchmark.getRunData().getDirectory(), true); int ndocsExpected = 20; // Reuters20ContentSource exhausts after 20 docs. assertEquals("wrong number of docs in the index!", ndocsExpected, ir.numDocs()); ir.close(); @@ -692,7 +692,7 @@ public class TestPerfTasksLogic extends TestCase { assertFalse(writer.getUseCompoundFile()); writer.close(); Directory dir = benchmark.getRunData().getDirectory(); - IndexReader reader = IndexReader.open(dir); + IndexReader reader = IndexReader.open(dir, true); TermFreqVector [] tfv = reader.getTermFreqVectors(0); assertNotNull(tfv); assertTrue(tfv.length > 0); @@ -731,7 +731,7 @@ public class TestPerfTasksLogic extends TestCase { Benchmark benchmark = execBenchmark(algLines); // 3. test number of docs in the index - IndexReader ir = IndexReader.open(benchmark.getRunData().getDirectory()); + IndexReader ir = IndexReader.open(benchmark.getRunData().getDirectory(), true); int ndocsExpected = 20; // Reuters20ContentSource exhausts after 20 docs. assertEquals("wrong number of docs in the index!", ndocsExpected, ir.numDocs()); ir.close(); diff --git a/contrib/benchmark/src/test/org/apache/lucene/benchmark/quality/TestQualityRun.java b/contrib/benchmark/src/test/org/apache/lucene/benchmark/quality/TestQualityRun.java index df39b0b52de..adfa0f6af57 100644 --- a/contrib/benchmark/src/test/org/apache/lucene/benchmark/quality/TestQualityRun.java +++ b/contrib/benchmark/src/test/org/apache/lucene/benchmark/quality/TestQualityRun.java @@ -82,7 +82,7 @@ public class TestQualityRun extends TestCase { // validate topics & judgments match each other judge.validateData(qqs, logger); - IndexSearcher searcher = new IndexSearcher(FSDirectory.open(new File(workDir,"index"))); + IndexSearcher searcher = new IndexSearcher(FSDirectory.open(new File(workDir,"index")), true); QualityQueryParser qqParser = new SimpleQQParser("title","body"); QualityBenchmark qrun = new QualityBenchmark(qqs, qqParser, searcher, docNameField); diff --git a/contrib/collation/src/test/org/apache/lucene/collation/CollationTestBase.java b/contrib/collation/src/test/org/apache/lucene/collation/CollationTestBase.java index af1bca74c97..2335e84a0a2 100644 --- a/contrib/collation/src/test/org/apache/lucene/collation/CollationTestBase.java +++ b/contrib/collation/src/test/org/apache/lucene/collation/CollationTestBase.java @@ -82,7 +82,7 @@ public class CollationTestBase extends TestCase { Field.Store.YES, Field.Index.ANALYZED)); writer.addDocument(doc); writer.close(); - IndexSearcher is = new IndexSearcher(ramDir); + IndexSearcher is = new IndexSearcher(ramDir, true); AnalyzingQueryParser aqp = new AnalyzingQueryParser("content", analyzer); aqp.setLowercaseExpandedTerms(false); @@ -127,7 +127,7 @@ public class CollationTestBase extends TestCase { Field.Store.YES, Field.Index.NOT_ANALYZED)); writer.addDocument(doc); writer.close(); - IndexSearcher searcher = new IndexSearcher(ramDir); + IndexSearcher searcher = new IndexSearcher(ramDir, true); Query query = new TermQuery(new Term("body","body")); // Unicode order would include U+0633 in [ U+062F - U+0698 ], but Farsi @@ -162,7 +162,7 @@ public class CollationTestBase extends TestCase { Field.Store.YES, Field.Index.ANALYZED)); writer.addDocument(doc); writer.close(); - IndexSearcher searcher = new IndexSearcher(ramDir); + IndexSearcher searcher = new IndexSearcher(ramDir, true); Query query = new TermRangeQuery("content", firstBeg, firstEnd, true, true); ScoreDoc[] hits = searcher.search(query, null, 1000).scoreDocs; @@ -189,7 +189,7 @@ public class CollationTestBase extends TestCase { writer.addDocument(doc); writer.close(); - IndexReader reader = IndexReader.open(farsiIndex); + IndexReader reader = IndexReader.open(farsiIndex, true); IndexSearcher search = new IndexSearcher(reader); // Unicode order would include U+0633 in [ U+062F - U+0698 ], but Farsi @@ -268,7 +268,7 @@ public class CollationTestBase extends TestCase { } writer.optimize(); writer.close(); - Searcher searcher = new IndexSearcher(indexStore); + Searcher searcher = new IndexSearcher(indexStore, true); Sort sort = new Sort(); Query queryX = new TermQuery(new Term ("contents", "x")); diff --git a/contrib/db/bdb-je/src/java/org/apache/lucene/store/je/JEDirectory.java b/contrib/db/bdb-je/src/java/org/apache/lucene/store/je/JEDirectory.java index f657679778b..001c35c2200 100644 --- a/contrib/db/bdb-je/src/java/org/apache/lucene/store/je/JEDirectory.java +++ b/contrib/db/bdb-je/src/java/org/apache/lucene/store/je/JEDirectory.java @@ -140,7 +140,7 @@ public class JEDirectory extends Directory { throw new IOException("File does not exist: " + name); } - public String[] list() throws IOException { + public String[] listAll() throws IOException { Cursor cursor = null; List list = new ArrayList(); @@ -190,10 +190,6 @@ public class JEDirectory extends Directory { return new JELock(); } - public void renameFile(String from, String to) throws IOException { - new File(from).rename(this, to); - } - public void touchFile(String name) throws IOException { File file = new File(name); long length = 0L; diff --git a/contrib/db/bdb/src/java/org/apache/lucene/store/db/DbDirectory.java b/contrib/db/bdb/src/java/org/apache/lucene/store/db/DbDirectory.java index dfe643be6af..c8a83f635ae 100644 --- a/contrib/db/bdb/src/java/org/apache/lucene/store/db/DbDirectory.java +++ b/contrib/db/bdb/src/java/org/apache/lucene/store/db/DbDirectory.java @@ -158,7 +158,7 @@ public class DbDirectory extends Directory { throw new IOException("File does not exist: " + name); } - public String[] list() + public String[] listAll() throws IOException { Dbc cursor = null; @@ -216,12 +216,6 @@ public class DbDirectory extends Directory { return new DbLock(); } - public void renameFile(String from, String to) - throws IOException - { - new File(from).rename(this, to); - } - public void touchFile(String name) throws IOException { diff --git a/contrib/fast-vector-highlighter/src/java/org/apache/lucene/search/vectorhighlight/FieldTermStack.java b/contrib/fast-vector-highlighter/src/java/org/apache/lucene/search/vectorhighlight/FieldTermStack.java index 7511b1a7f0e..93a2bdc7f5f 100644 --- a/contrib/fast-vector-highlighter/src/java/org/apache/lucene/search/vectorhighlight/FieldTermStack.java +++ b/contrib/fast-vector-highlighter/src/java/org/apache/lucene/search/vectorhighlight/FieldTermStack.java @@ -62,7 +62,7 @@ public class FieldTermStack { writer.addDocument( doc ); writer.close(); - IndexReader reader = IndexReader.open( dir ); + IndexReader reader = IndexReader.open( dir, true ); FieldTermStack ftl = new FieldTermStack( reader, 0, "f", fieldQuery ); reader.close(); } diff --git a/contrib/fast-vector-highlighter/src/test/org/apache/lucene/search/vectorhighlight/AbstractTestCase.java b/contrib/fast-vector-highlighter/src/test/org/apache/lucene/search/vectorhighlight/AbstractTestCase.java index aaedfc0bb5f..466f35d808b 100644 --- a/contrib/fast-vector-highlighter/src/test/org/apache/lucene/search/vectorhighlight/AbstractTestCase.java +++ b/contrib/fast-vector-highlighter/src/test/org/apache/lucene/search/vectorhighlight/AbstractTestCase.java @@ -288,7 +288,7 @@ public abstract class AbstractTestCase extends TestCase { writer.addDocument( doc ); writer.close(); - reader = IndexReader.open( dir ); + reader = IndexReader.open( dir, true ); } protected void makeIndexShortMV() throws Exception { diff --git a/contrib/fast-vector-highlighter/src/test/org/apache/lucene/search/vectorhighlight/SimpleFragmentsBuilderTest.java b/contrib/fast-vector-highlighter/src/test/org/apache/lucene/search/vectorhighlight/SimpleFragmentsBuilderTest.java index c37649ad872..5e017d04da8 100644 --- a/contrib/fast-vector-highlighter/src/test/org/apache/lucene/search/vectorhighlight/SimpleFragmentsBuilderTest.java +++ b/contrib/fast-vector-highlighter/src/test/org/apache/lucene/search/vectorhighlight/SimpleFragmentsBuilderTest.java @@ -125,6 +125,6 @@ public class SimpleFragmentsBuilderTest extends AbstractTestCase { writer.addDocument( doc ); writer.close(); - reader = IndexReader.open( dir ); + reader = IndexReader.open( dir, true ); } } diff --git a/contrib/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java b/contrib/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java index 7aa4f9cd1c8..6968a18ae48 100644 --- a/contrib/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java +++ b/contrib/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java @@ -114,7 +114,7 @@ public class HighlighterTest extends BaseTokenStreamTestCase implements Formatte Analyzer analyzer = new SimpleAnalyzer(); QueryParser qp = new QueryParser(FIELD_NAME, analyzer); query = qp.parse("\"very long\""); - searcher = new IndexSearcher(ramDir, false); + searcher = new IndexSearcher(ramDir, true); TopDocs hits = searcher.search(query, 10); QueryScorer scorer = new QueryScorer(query, FIELD_NAME); @@ -564,7 +564,7 @@ public class HighlighterTest extends BaseTokenStreamTestCase implements Formatte query = new ConstantScoreRangeQuery(FIELD_NAME, "kannedy", "kznnedy", true, true); - searcher = new IndexSearcher(ramDir); + searcher = new IndexSearcher(ramDir, true); // can't rewrite ConstantScoreRangeQuery if you want to highlight it - // it rewrites to ConstantScoreQuery which cannot be highlighted // query = unReWrittenQuery.rewrite(reader); @@ -600,7 +600,7 @@ public class HighlighterTest extends BaseTokenStreamTestCase implements Formatte query = new WildcardQuery(new Term(FIELD_NAME, "ken*")); ((WildcardQuery)query).setRewriteMethod(MultiTermQuery.CONSTANT_SCORE_FILTER_REWRITE); - searcher = new IndexSearcher(ramDir); + searcher = new IndexSearcher(ramDir, true); // can't rewrite ConstantScore if you want to highlight it - // it rewrites to ConstantScoreQuery which cannot be highlighted // query = unReWrittenQuery.rewrite(reader); @@ -1098,7 +1098,7 @@ public class HighlighterTest extends BaseTokenStreamTestCase implements Formatte public void run() throws Exception { numHighlights = 0; // test to show how rewritten query can still be used - searcher = new IndexSearcher(ramDir); + searcher = new IndexSearcher(ramDir, true); Analyzer analyzer = new StandardAnalyzer(); QueryParser parser = new QueryParser(FIELD_NAME, analyzer); @@ -1218,7 +1218,7 @@ public class HighlighterTest extends BaseTokenStreamTestCase implements Formatte writer1.addDocument(d); writer1.optimize(); writer1.close(); - IndexReader reader1 = IndexReader.open(ramDir1); + IndexReader reader1 = IndexReader.open(ramDir1, true); // setup index 2 RAMDirectory ramDir2 = new RAMDirectory(); @@ -1229,11 +1229,11 @@ public class HighlighterTest extends BaseTokenStreamTestCase implements Formatte writer2.addDocument(d); writer2.optimize(); writer2.close(); - IndexReader reader2 = IndexReader.open(ramDir2); + IndexReader reader2 = IndexReader.open(ramDir2, true); IndexSearcher searchers[] = new IndexSearcher[2]; - searchers[0] = new IndexSearcher(ramDir1); - searchers[1] = new IndexSearcher(ramDir2); + searchers[0] = new IndexSearcher(ramDir1, true); + searchers[1] = new IndexSearcher(ramDir2, true); MultiSearcher multiSearcher = new MultiSearcher(searchers); QueryParser parser = new QueryParser(FIELD_NAME, new StandardAnalyzer()); parser.setMultiTermRewriteMethod(MultiTermQuery.SCORING_BOOLEAN_QUERY_REWRITE); @@ -1513,7 +1513,7 @@ public class HighlighterTest extends BaseTokenStreamTestCase implements Formatte String q = "t_text1:random"; QueryParser parser = new QueryParser( "t_text1", a ); Query query = parser.parse( q ); - IndexSearcher searcher = new IndexSearcher( dir ); + IndexSearcher searcher = new IndexSearcher( dir, true ); // This scorer can return negative idf -> null fragment Scorer scorer = new QueryTermScorer( query, searcher.getIndexReader(), "t_text1" ); // This scorer doesn't use idf (patch version) @@ -1539,7 +1539,7 @@ public class HighlighterTest extends BaseTokenStreamTestCase implements Formatte * writer = new IndexWriter(ramDir,bigramAnalyzer , true); Document d = new * Document(); Field f = new Field(FIELD_NAME, "java abc def", true, true, * true); d.add(f); writer.addDocument(d); writer.close(); IndexReader reader = - * IndexReader.open(ramDir); + * IndexReader.open(ramDir, true); * * IndexSearcher searcher=new IndexSearcher(reader); query = * QueryParser.parse("abc", FIELD_NAME, bigramAnalyzer); @@ -1572,7 +1572,7 @@ public class HighlighterTest extends BaseTokenStreamTestCase implements Formatte } public void doSearching(Query unReWrittenQuery) throws Exception { - searcher = new IndexSearcher(ramDir); + searcher = new IndexSearcher(ramDir, true); // for any multi-term queries to work (prefix, wildcard, range,fuzzy etc) // you must use a rewritten query! query = unReWrittenQuery.rewrite(reader); @@ -1609,7 +1609,7 @@ public class HighlighterTest extends BaseTokenStreamTestCase implements Formatte writer.optimize(); writer.close(); - reader = IndexReader.open(ramDir); + reader = IndexReader.open(ramDir, true); numHighlights = 0; } diff --git a/contrib/instantiated/src/test/org/apache/lucene/store/instantiated/TestEmptyIndex.java b/contrib/instantiated/src/test/org/apache/lucene/store/instantiated/TestEmptyIndex.java index 69fcb460bcd..b9ae1b4cee3 100644 --- a/contrib/instantiated/src/test/org/apache/lucene/store/instantiated/TestEmptyIndex.java +++ b/contrib/instantiated/src/test/org/apache/lucene/store/instantiated/TestEmptyIndex.java @@ -62,7 +62,7 @@ public class TestEmptyIndex extends TestCase { Directory d = new RAMDirectory(); new IndexWriter(d, null, true, IndexWriter.MaxFieldLength.UNLIMITED).close(); - r = IndexReader.open(d); + r = IndexReader.open(d, false); testNorms(r); r.close(); d.close(); @@ -96,7 +96,7 @@ public class TestEmptyIndex extends TestCase { Directory d = new RAMDirectory(); new IndexWriter(d, null, true, IndexWriter.MaxFieldLength.UNLIMITED).close(); - r = IndexReader.open(d); + r = IndexReader.open(d, false); termEnumTest(r); r.close(); d.close(); diff --git a/contrib/instantiated/src/test/org/apache/lucene/store/instantiated/TestIndicesEquals.java b/contrib/instantiated/src/test/org/apache/lucene/store/instantiated/TestIndicesEquals.java index e90960a7aa2..26c29269d16 100644 --- a/contrib/instantiated/src/test/org/apache/lucene/store/instantiated/TestIndicesEquals.java +++ b/contrib/instantiated/src/test/org/apache/lucene/store/instantiated/TestIndicesEquals.java @@ -54,7 +54,7 @@ public class TestIndicesEquals extends TestCase { // public void test2() throws Exception { // FSDirectory fsdir = FSDirectory.open(new File("/tmp/fatcorpus")); -// IndexReader ir = IndexReader.open(fsdir); +// IndexReader ir = IndexReader.open(fsdir, false); // InstantiatedIndex ii = new InstantiatedIndex(ir); // ir.close(); // testEquals(fsdir, ii); @@ -74,7 +74,7 @@ public class TestIndicesEquals extends TestCase { indexWriter.close(); // test load ii from index reader - IndexReader ir = IndexReader.open(dir); + IndexReader ir = IndexReader.open(dir, false); InstantiatedIndex ii = new InstantiatedIndex(ir); ir.close(); @@ -116,7 +116,7 @@ public class TestIndicesEquals extends TestCase { private void testTermDocs(Directory aprioriIndex, InstantiatedIndex testIndex) throws Exception { - IndexReader aprioriReader = IndexReader.open(aprioriIndex); + IndexReader aprioriReader = IndexReader.open(aprioriIndex, false); IndexReader testReader = testIndex.indexReaderFactory(); TermEnum aprioriTermEnum = aprioriReader.terms(new Term("c", "danny")); @@ -216,7 +216,7 @@ public class TestIndicesEquals extends TestCase { testEquals(aprioriIndex, testIndex); // delete a few documents - IndexReader ir = IndexReader.open(aprioriIndex); + IndexReader ir = IndexReader.open(aprioriIndex, false); ir.deleteDocument(3); ir.deleteDocument(8); ir.close(); @@ -232,7 +232,7 @@ public class TestIndicesEquals extends TestCase { protected void testEquals(Directory aprioriIndex, InstantiatedIndex testIndex) throws Exception { - IndexReader aprioriReader = IndexReader.open(aprioriIndex); + IndexReader aprioriReader = IndexReader.open(aprioriIndex, false); IndexReader testReader = testIndex.indexReaderFactory(); assertEquals(aprioriReader.numDocs(), testReader.numDocs()); diff --git a/contrib/instantiated/src/test/org/apache/lucene/store/instantiated/TestSerialization.java b/contrib/instantiated/src/test/org/apache/lucene/store/instantiated/TestSerialization.java index ac1419a9601..21e75ebf326 100644 --- a/contrib/instantiated/src/test/org/apache/lucene/store/instantiated/TestSerialization.java +++ b/contrib/instantiated/src/test/org/apache/lucene/store/instantiated/TestSerialization.java @@ -42,7 +42,7 @@ public class TestSerialization extends TestCase { iw.addDocument(doc); iw.close(); - IndexReader ir = IndexReader.open(dir); + IndexReader ir = IndexReader.open(dir, false); InstantiatedIndex ii = new InstantiatedIndex(ir); ir.close(); diff --git a/contrib/instantiated/src/test/org/apache/lucene/store/instantiated/TestUnoptimizedReaderOnConstructor.java b/contrib/instantiated/src/test/org/apache/lucene/store/instantiated/TestUnoptimizedReaderOnConstructor.java index 298a12786c0..f33052b0e54 100644 --- a/contrib/instantiated/src/test/org/apache/lucene/store/instantiated/TestUnoptimizedReaderOnConstructor.java +++ b/contrib/instantiated/src/test/org/apache/lucene/store/instantiated/TestUnoptimizedReaderOnConstructor.java @@ -50,7 +50,7 @@ public class TestUnoptimizedReaderOnConstructor extends TestCase { addDocument(iw, "All work and no play makes wendy a dull girl"); iw.close(); - IndexReader unoptimizedReader = IndexReader.open(dir); + IndexReader unoptimizedReader = IndexReader.open(dir, false); unoptimizedReader.deleteDocument(2); InstantiatedIndex ii; diff --git a/contrib/lucli/src/java/lucli/LuceneMethods.java b/contrib/lucli/src/java/lucli/LuceneMethods.java index 4052256bc98..bae0084cfa4 100644 --- a/contrib/lucli/src/java/lucli/LuceneMethods.java +++ b/contrib/lucli/src/java/lucli/LuceneMethods.java @@ -31,6 +31,7 @@ import java.util.Map; import java.util.Set; import java.util.TreeMap; import java.util.Map.Entry; +import java.io.File; import jline.ConsoleReader; @@ -54,6 +55,7 @@ import org.apache.lucene.search.Hits; import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.Query; import org.apache.lucene.search.Searcher; +import org.apache.lucene.store.FSDirectory; /** * Various methods that interact with Lucene and provide info about the @@ -62,7 +64,7 @@ import org.apache.lucene.search.Searcher; class LuceneMethods { private int numDocs; - private String indexName; //directory of this index + private FSDirectory indexName; //directory of this index private java.util.Iterator fieldIterator; private List fields; //Fields as a vector private List indexedFields; //Fields as a vector @@ -71,8 +73,8 @@ class LuceneMethods { private Query query; //current query string private String analyzerClassFQN = null; // Analyzer class, if NULL, use default Analyzer - public LuceneMethods(String index) { - indexName = index; + public LuceneMethods(String index) throws IOException { + indexName = FSDirectory.open(new File(index)); message("Lucene CLI. Using directory '" + indexName + "'. Type 'help' for instructions."); } @@ -94,7 +96,7 @@ class LuceneMethods { public void info() throws java.io.IOException { - IndexReader indexReader = IndexReader.open(indexName); + IndexReader indexReader = IndexReader.open(indexName, true); getFieldInfo(); @@ -103,7 +105,7 @@ class LuceneMethods { message("All Fields:" + fields.toString()); message("Indexed Fields:" + indexedFields.toString()); - if (IndexReader.isLocked(indexName)) { + if (IndexWriter.isLocked(indexName)) { message("Index is locked"); } //IndexReader.getCurrentVersion(indexName); @@ -180,7 +182,7 @@ class LuceneMethods { private Query explainQuery(String queryString) throws IOException, ParseException { - searcher = new IndexSearcher(indexName); + searcher = new IndexSearcher(indexName, true); Analyzer analyzer = createAnalyzer(); getFieldInfo(); @@ -201,7 +203,7 @@ class LuceneMethods { */ private Hits initSearch(String queryString) throws IOException, ParseException { - searcher = new IndexSearcher(indexName); + searcher = new IndexSearcher(indexName, true); Analyzer analyzer = createAnalyzer(); getFieldInfo(); @@ -229,7 +231,7 @@ class LuceneMethods { } private void getFieldInfo() throws IOException { - IndexReader indexReader = IndexReader.open(indexName); + IndexReader indexReader = IndexReader.open(indexName, true); fields = new ArrayList(); indexedFields = new ArrayList(); @@ -320,7 +322,7 @@ class LuceneMethods { */ public void terms(String field) throws IOException { TreeMap termMap = new TreeMap(); - IndexReader indexReader = IndexReader.open(indexName); + IndexReader indexReader = IndexReader.open(indexName, true); TermEnum terms = indexReader.terms(); while (terms.next()) { Term term = terms.term(); diff --git a/contrib/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java b/contrib/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java index ded237eda46..78a0bb72521 100644 --- a/contrib/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java +++ b/contrib/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java @@ -715,7 +715,7 @@ public class MemoryIndex implements Serializable { private Searcher searcher; // needed to find searcher.getSimilarity() private MemoryIndexReader() { - super(null); // avoid as much superclass baggage as possible + super(); // avoid as much superclass baggage as possible } // lucene >= 1.9 or lucene-1.4.3 with patch removing "final" in superclass diff --git a/contrib/memory/src/test/org/apache/lucene/index/memory/MemoryIndexTest.java b/contrib/memory/src/test/org/apache/lucene/index/memory/MemoryIndexTest.java index 500c2e5f562..c51c7801a62 100644 --- a/contrib/memory/src/test/org/apache/lucene/index/memory/MemoryIndexTest.java +++ b/contrib/memory/src/test/org/apache/lucene/index/memory/MemoryIndexTest.java @@ -420,7 +420,7 @@ public class MemoryIndexTest extends BaseTokenStreamTestCase { Searcher searcher = null; try { if (index instanceof Directory) - searcher = new IndexSearcher((Directory)index); + searcher = new IndexSearcher((Directory)index, true); else searcher = ((MemoryIndex) index).createSearcher(); @@ -450,7 +450,7 @@ public class MemoryIndexTest extends BaseTokenStreamTestCase { try { Directory dir = (Directory) index; int size = 0; - String[] fileNames = dir.list(); + String[] fileNames = dir.listAll(); for (int i=0; i < fileNames.length; i++) { size += dir.fileLength(fileNames[i]); } diff --git a/contrib/misc/src/java/org/apache/lucene/index/FieldNormModifier.java b/contrib/misc/src/java/org/apache/lucene/index/FieldNormModifier.java index 12b833ee7c3..13bcd0de62d 100644 --- a/contrib/misc/src/java/org/apache/lucene/index/FieldNormModifier.java +++ b/contrib/misc/src/java/org/apache/lucene/index/FieldNormModifier.java @@ -112,7 +112,7 @@ public class FieldNormModifier { TermEnum termEnum = null; TermDocs termDocs = null; try { - reader = IndexReader.open(dir); + reader = IndexReader.open(dir, true); termCounts = new int[reader.maxDoc()]; // if we are killing norms, get fake ones if (sim == null) @@ -142,7 +142,7 @@ public class FieldNormModifier { } try { - reader = IndexReader.open(dir); + reader = IndexReader.open(dir, false); for (int d = 0; d < termCounts.length; d++) { if (! reader.isDeleted(d)) { if (sim == null) diff --git a/contrib/misc/src/java/org/apache/lucene/misc/HighFreqTerms.java b/contrib/misc/src/java/org/apache/lucene/misc/HighFreqTerms.java index 71c5b5a236f..328242decaa 100644 --- a/contrib/misc/src/java/org/apache/lucene/misc/HighFreqTerms.java +++ b/contrib/misc/src/java/org/apache/lucene/misc/HighFreqTerms.java @@ -19,8 +19,11 @@ package org.apache.lucene.misc; import org.apache.lucene.index.IndexReader; import org.apache.lucene.index.Term; import org.apache.lucene.index.TermEnum; +import org.apache.lucene.store.FSDirectory; import org.apache.lucene.util.PriorityQueue; +import java.io.File; + /** * HighFreqTerms class extracts terms and their frequencies out * of an existing Lucene index. @@ -34,11 +37,14 @@ public class HighFreqTerms { public static void main(String[] args) throws Exception { IndexReader reader = null; + FSDirectory dir = null; String field = null; if (args.length == 1) { - reader = IndexReader.open(args[0]); + dir = FSDirectory.open(new File(args[0])); + reader = IndexReader.open(dir, true); } else if (args.length == 2) { - reader = IndexReader.open(args[0]); + dir = FSDirectory.open(new File(args[0])); + reader = IndexReader.open(dir, true); field = args[1]; } else { usage(); diff --git a/contrib/misc/src/java/org/apache/lucene/misc/IndexMergeTool.java b/contrib/misc/src/java/org/apache/lucene/misc/IndexMergeTool.java index 8ea18867117..148743677f2 100644 --- a/contrib/misc/src/java/org/apache/lucene/misc/IndexMergeTool.java +++ b/contrib/misc/src/java/org/apache/lucene/misc/IndexMergeTool.java @@ -35,7 +35,7 @@ public class IndexMergeTool { System.err.println("Usage: IndexMergeTool [index3] ..."); System.exit(1); } - File mergedIndex = new File(args[0]); + FSDirectory mergedIndex = FSDirectory.open(new File(args[0])); IndexWriter writer = new IndexWriter(mergedIndex, new SimpleAnalyzer(), true, IndexWriter.MaxFieldLength.LIMITED); diff --git a/contrib/misc/src/java/org/apache/lucene/misc/LengthNormModifier.java b/contrib/misc/src/java/org/apache/lucene/misc/LengthNormModifier.java index 9fdb725eeed..b6b507aab43 100644 --- a/contrib/misc/src/java/org/apache/lucene/misc/LengthNormModifier.java +++ b/contrib/misc/src/java/org/apache/lucene/misc/LengthNormModifier.java @@ -113,7 +113,7 @@ public class LengthNormModifier { TermEnum termEnum = null; TermDocs termDocs = null; try { - reader = IndexReader.open(dir); + reader = IndexReader.open(dir, false); termCounts = new int[reader.maxDoc()]; try { termEnum = reader.terms(new Term(field)); @@ -139,7 +139,7 @@ public class LengthNormModifier { } try { - reader = IndexReader.open(dir); + reader = IndexReader.open(dir, false); for (int d = 0; d < termCounts.length; d++) { if (! reader.isDeleted(d)) { byte norm = sim.encodeNorm(sim.lengthNorm(fieldName, termCounts[d])); diff --git a/contrib/misc/src/test/org/apache/lucene/index/TestFieldNormModifier.java b/contrib/misc/src/test/org/apache/lucene/index/TestFieldNormModifier.java index 023f9701be6..9ad7ba2c55e 100644 --- a/contrib/misc/src/test/org/apache/lucene/index/TestFieldNormModifier.java +++ b/contrib/misc/src/test/org/apache/lucene/index/TestFieldNormModifier.java @@ -87,7 +87,7 @@ public class TestFieldNormModifier extends TestCase { public void testFieldWithNoNorm() throws Exception { - IndexReader r = IndexReader.open(store); + IndexReader r = IndexReader.open(store, false); byte[] norms = r.norms("nonorm"); // sanity check, norms should all be 1 @@ -110,7 +110,7 @@ public class TestFieldNormModifier extends TestCase { } // nothing should have changed - r = IndexReader.open(store); + r = IndexReader.open(store, false); norms = r.norms("nonorm"); assertTrue("Whoops we have norms?", !r.hasNorms("nonorm")); @@ -128,7 +128,7 @@ public class TestFieldNormModifier extends TestCase { public void testGoodCases() throws Exception { - IndexSearcher searcher = new IndexSearcher(store); + IndexSearcher searcher = new IndexSearcher(store, true); final float[] scores = new float[NUM_DOCS]; float lastScore = 0.0f; @@ -164,7 +164,7 @@ public class TestFieldNormModifier extends TestCase { fnm.reSetNorms("field"); // new norm (with default similarity) should put longer docs first - searcher = new IndexSearcher(store); + searcher = new IndexSearcher(store, true); searcher.search(new TermQuery(new Term("field", "word")), new Collector() { private int docBase = 0; private Scorer scorer; @@ -194,21 +194,21 @@ public class TestFieldNormModifier extends TestCase { public void testNormKiller() throws IOException { - IndexReader r = IndexReader.open(store); + IndexReader r = IndexReader.open(store, false); byte[] oldNorms = r.norms("untokfield"); r.close(); FieldNormModifier fnm = new FieldNormModifier(store, s); fnm.reSetNorms("untokfield"); - r = IndexReader.open(store); + r = IndexReader.open(store, false); byte[] newNorms = r.norms("untokfield"); r.close(); assertFalse(Arrays.equals(oldNorms, newNorms)); // verify that we still get documents in the same order as originally - IndexSearcher searcher = new IndexSearcher(store); + IndexSearcher searcher = new IndexSearcher(store, true); final float[] scores = new float[NUM_DOCS]; float lastScore = 0.0f; diff --git a/contrib/misc/src/test/org/apache/lucene/index/TestTermVectorAccessor.java b/contrib/misc/src/test/org/apache/lucene/index/TestTermVectorAccessor.java index d43e85e3732..6cbf3ec75eb 100644 --- a/contrib/misc/src/test/org/apache/lucene/index/TestTermVectorAccessor.java +++ b/contrib/misc/src/test/org/apache/lucene/index/TestTermVectorAccessor.java @@ -65,7 +65,7 @@ public class TestTermVectorAccessor extends TestCase { iw.close(); - IndexReader ir = IndexReader.open(dir); + IndexReader ir = IndexReader.open(dir, false); TermVectorAccessor accessor = new TermVectorAccessor(); diff --git a/contrib/misc/src/test/org/apache/lucene/misc/ChainedFilterTest.java b/contrib/misc/src/test/org/apache/lucene/misc/ChainedFilterTest.java index 4b6906c9456..766a375fee0 100644 --- a/contrib/misc/src/test/org/apache/lucene/misc/ChainedFilterTest.java +++ b/contrib/misc/src/test/org/apache/lucene/misc/ChainedFilterTest.java @@ -64,7 +64,7 @@ public class ChainedFilterTest extends TestCase { writer.close(); - searcher = new IndexSearcher(directory); + searcher = new IndexSearcher(directory, true); // query for everything to make life easier BooleanQuery bq = new BooleanQuery(); @@ -222,7 +222,7 @@ public class ChainedFilterTest extends TestCase { IndexWriter writer = new IndexWriter(dir, analyzer, true, MaxFieldLength.LIMITED); writer.close(); - Searcher searcher = new IndexSearcher(dir); + Searcher searcher = new IndexSearcher(dir, true); Query query = new TermQuery(new Term("none", "none")); diff --git a/contrib/misc/src/test/org/apache/lucene/misc/TestLengthNormModifier.java b/contrib/misc/src/test/org/apache/lucene/misc/TestLengthNormModifier.java index a893b41d160..4029934a37a 100644 --- a/contrib/misc/src/test/org/apache/lucene/misc/TestLengthNormModifier.java +++ b/contrib/misc/src/test/org/apache/lucene/misc/TestLengthNormModifier.java @@ -93,7 +93,7 @@ public class TestLengthNormModifier extends TestCase { public void testFieldWithNoNorm() throws Exception { - IndexReader r = IndexReader.open(store); + IndexReader r = IndexReader.open(store, false); byte[] norms = r.norms("nonorm"); // sanity check, norms should all be 1 @@ -116,7 +116,7 @@ public class TestLengthNormModifier extends TestCase { } // nothing should have changed - r = IndexReader.open(store); + r = IndexReader.open(store, false); norms = r.norms("nonorm"); assertTrue("Whoops we have norms?", !r.hasNorms("nonorm")); @@ -140,7 +140,7 @@ public class TestLengthNormModifier extends TestCase { float lastScore = 0.0f; // default similarity should put docs with shorter length first - searcher = new IndexSearcher(store); + searcher = new IndexSearcher(store, false); searcher.search(new TermQuery(new Term("field", "word")), new Collector() { private int docBase = 0; private Scorer scorer; @@ -177,7 +177,7 @@ public class TestLengthNormModifier extends TestCase { fnm.reSetNorms("field"); // new norm (with default similarity) should put longer docs first - searcher = new IndexSearcher(store); + searcher = new IndexSearcher(store, false); searcher.search(new TermQuery(new Term("field", "word")), new Collector() { private int docBase = 0; private Scorer scorer; diff --git a/contrib/misc/src/test/org/apache/lucene/queryParser/complexPhrase/TestComplexPhraseQuery.java b/contrib/misc/src/test/org/apache/lucene/queryParser/complexPhrase/TestComplexPhraseQuery.java index c5f75fccc36..1271c97fb3b 100644 --- a/contrib/misc/src/test/org/apache/lucene/queryParser/complexPhrase/TestComplexPhraseQuery.java +++ b/contrib/misc/src/test/org/apache/lucene/queryParser/complexPhrase/TestComplexPhraseQuery.java @@ -122,7 +122,7 @@ public class TestComplexPhraseQuery extends TestCase { w.addDocument(doc); } w.close(); - searcher = new IndexSearcher(rd); + searcher = new IndexSearcher(rd, true); } protected void tearDown() throws Exception { diff --git a/contrib/queries/src/java/org/apache/lucene/search/DuplicateFilter.java b/contrib/queries/src/java/org/apache/lucene/search/DuplicateFilter.java index 4262f2cecd6..ef6e269520c 100644 --- a/contrib/queries/src/java/org/apache/lucene/search/DuplicateFilter.java +++ b/contrib/queries/src/java/org/apache/lucene/search/DuplicateFilter.java @@ -162,28 +162,6 @@ public class DuplicateFilter extends Filter return bits; } - /** - * @param args - * @throws IOException - * @throws Exception - */ - public static void main(String[] args) throws Exception - { - IndexReader r=IndexReader.open("/indexes/personCentricAnon"); -// IndexReader r=IndexReader.open("/indexes/enron"); - long start=System.currentTimeMillis(); -// DuplicateFilter df = new DuplicateFilter("threadId",KM_USE_FIRST_OCCURRENCE, PM_FAST_INVALIDATION); -// DuplicateFilter df = new DuplicateFilter("threadId",KM_USE_LAST_OCCURRENCE, PM_FAST_INVALIDATION); - DuplicateFilter df = new DuplicateFilter("vehicle.vrm",KM_USE_LAST_OCCURRENCE, PM_FAST_INVALIDATION); -// DuplicateFilter df = new DuplicateFilter("title",USE_LAST_OCCURRENCE); -// df.setProcessingMode(PM_SLOW_VALIDATION); - BitSet b = df.bits(r); - long end=System.currentTimeMillis()-start; - System.out.println(b.cardinality()+" in "+end+" ms "); - - } - - public String getFieldName() { return fieldName; diff --git a/contrib/queries/src/java/org/apache/lucene/search/similar/MoreLikeThis.java b/contrib/queries/src/java/org/apache/lucene/search/similar/MoreLikeThis.java index ad2132aa2d6..89d67029f89 100644 --- a/contrib/queries/src/java/org/apache/lucene/search/similar/MoreLikeThis.java +++ b/contrib/queries/src/java/org/apache/lucene/search/similar/MoreLikeThis.java @@ -32,6 +32,7 @@ import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.analysis.tokenattributes.TermAttribute; import org.apache.lucene.document.Document; +import org.apache.lucene.store.FSDirectory; import java.util.Set; import java.util.HashMap; @@ -720,7 +721,8 @@ public final class MoreLikeThis { } PrintStream o = System.out; - IndexReader r = IndexReader.open(indexName); + FSDirectory dir = FSDirectory.open(new File(indexName)); + IndexReader r = IndexReader.open(dir, true); o.println("Open index " + indexName + " which has " + r.numDocs() + " docs"); MoreLikeThis mlt = new MoreLikeThis(r); @@ -741,7 +743,7 @@ public final class MoreLikeThis { o.println("q: " + query); o.println(); - IndexSearcher searcher = new IndexSearcher(indexName); + IndexSearcher searcher = new IndexSearcher(dir, true); Hits hits = searcher.search(query); int len = hits.length(); diff --git a/contrib/queries/src/test/org/apache/lucene/search/BooleanFilterTest.java b/contrib/queries/src/test/org/apache/lucene/search/BooleanFilterTest.java index f601284ead8..e9cf4fbf866 100644 --- a/contrib/queries/src/test/org/apache/lucene/search/BooleanFilterTest.java +++ b/contrib/queries/src/test/org/apache/lucene/search/BooleanFilterTest.java @@ -54,7 +54,7 @@ public class BooleanFilterTest extends TestCase addDoc(writer, "admin guest", "030", "20050101","N"); writer.close(); - reader=IndexReader.open(directory); + reader=IndexReader.open(directory, true); } private void addDoc(IndexWriter writer, String accessRights, String price, String date, String inStock) throws IOException diff --git a/contrib/queries/src/test/org/apache/lucene/search/DuplicateFilterTest.java b/contrib/queries/src/test/org/apache/lucene/search/DuplicateFilterTest.java index bd5e36123d5..5085c298b11 100644 --- a/contrib/queries/src/test/org/apache/lucene/search/DuplicateFilterTest.java +++ b/contrib/queries/src/test/org/apache/lucene/search/DuplicateFilterTest.java @@ -55,7 +55,7 @@ public class DuplicateFilterTest extends TestCase addDoc(writer, "http://lucene.apache.org", "Oops. Lucene 2.1 out", "20050102"); writer.close(); - reader=IndexReader.open(directory); + reader=IndexReader.open(directory, true); searcher =new IndexSearcher(reader); } diff --git a/contrib/queries/src/test/org/apache/lucene/search/FuzzyLikeThisQueryTest.java b/contrib/queries/src/test/org/apache/lucene/search/FuzzyLikeThisQueryTest.java index d8ba756b8a3..76e1eff90b6 100644 --- a/contrib/queries/src/test/org/apache/lucene/search/FuzzyLikeThisQueryTest.java +++ b/contrib/queries/src/test/org/apache/lucene/search/FuzzyLikeThisQueryTest.java @@ -51,7 +51,7 @@ public class FuzzyLikeThisQueryTest extends TestCase addDoc(writer, "johnathon smythe","6"); writer.close(); - searcher=new IndexSearcher(directory); + searcher=new IndexSearcher(directory, true); } private void addDoc(IndexWriter writer, String name, String id) throws IOException diff --git a/contrib/queries/src/test/org/apache/lucene/search/TermsFilterTest.java b/contrib/queries/src/test/org/apache/lucene/search/TermsFilterTest.java index c2c45b0db61..24bd8d5efd9 100644 --- a/contrib/queries/src/test/org/apache/lucene/search/TermsFilterTest.java +++ b/contrib/queries/src/test/org/apache/lucene/search/TermsFilterTest.java @@ -64,7 +64,7 @@ public class TermsFilterTest extends TestCase w.addDocument(doc); } w.close(); - IndexReader reader = IndexReader.open(rd); + IndexReader reader = IndexReader.open(rd, true); TermsFilter tf=new TermsFilter(); tf.addTerm(new Term(fieldName,"19")); diff --git a/contrib/queryparser/src/test/org/apache/lucene/queryParser/standard/TestMultiFieldQPHelper.java b/contrib/queryparser/src/test/org/apache/lucene/queryParser/standard/TestMultiFieldQPHelper.java index 16606880e89..2eb8c03165e 100644 --- a/contrib/queryparser/src/test/org/apache/lucene/queryParser/standard/TestMultiFieldQPHelper.java +++ b/contrib/queryparser/src/test/org/apache/lucene/queryParser/standard/TestMultiFieldQPHelper.java @@ -335,7 +335,7 @@ public class TestMultiFieldQPHelper extends LuceneTestCase { mfqp.setAnalyzer(analyzer); mfqp.setDefaultOperator(Operator.AND); Query q = mfqp.parse("the footest", null); - IndexSearcher is = new IndexSearcher(ramDir); + IndexSearcher is = new IndexSearcher(ramDir, true); ScoreDoc[] hits = is.search(q, null, 1000).scoreDocs; assertEquals(1, hits.length); is.close(); diff --git a/contrib/queryparser/src/test/org/apache/lucene/queryParser/standard/TestMultiFieldQueryParserWrapper.java b/contrib/queryparser/src/test/org/apache/lucene/queryParser/standard/TestMultiFieldQueryParserWrapper.java index 26036743e45..d6fef2ede27 100644 --- a/contrib/queryparser/src/test/org/apache/lucene/queryParser/standard/TestMultiFieldQueryParserWrapper.java +++ b/contrib/queryparser/src/test/org/apache/lucene/queryParser/standard/TestMultiFieldQueryParserWrapper.java @@ -333,7 +333,7 @@ public class TestMultiFieldQueryParserWrapper extends LuceneTestCase { new String[] { "body" }, analyzer); mfqp.setDefaultOperator(QueryParserWrapper.Operator.AND); Query q = mfqp.parse("the footest"); - IndexSearcher is = new IndexSearcher(ramDir); + IndexSearcher is = new IndexSearcher(ramDir, true); ScoreDoc[] hits = is.search(q, null, 1000).scoreDocs; assertEquals(1, hits.length); is.close(); diff --git a/contrib/queryparser/src/test/org/apache/lucene/queryParser/standard/TestQPHelper.java b/contrib/queryparser/src/test/org/apache/lucene/queryParser/standard/TestQPHelper.java index 66283554406..bfa91217ac5 100644 --- a/contrib/queryparser/src/test/org/apache/lucene/queryParser/standard/TestQPHelper.java +++ b/contrib/queryparser/src/test/org/apache/lucene/queryParser/standard/TestQPHelper.java @@ -598,7 +598,7 @@ public class TestQPHelper extends LocalizedTestCase { Field.Index.UN_TOKENIZED)); iw.addDocument(doc); iw.close(); - IndexSearcher is = new IndexSearcher(ramDir); + IndexSearcher is = new IndexSearcher(ramDir, true); StandardQueryParser qp = new StandardQueryParser(); qp.setAnalyzer(new WhitespaceAnalyzer()); @@ -1020,7 +1020,7 @@ public class TestQPHelper extends LocalizedTestCase { addDateDoc("a", 2005, 12, 2, 10, 15, 33, iw); addDateDoc("b", 2005, 12, 4, 22, 15, 00, iw); iw.close(); - IndexSearcher is = new IndexSearcher(ramDir); + IndexSearcher is = new IndexSearcher(ramDir, true); assertHits(1, "[12/1/2005 TO 12/3/2005]", is); assertHits(2, "[12/1/2005 TO 12/4/2005]", is); assertHits(1, "[12/3/2005 TO 12/4/2005]", is); diff --git a/contrib/queryparser/src/test/org/apache/lucene/queryParser/standard/TestQueryParserWrapper.java b/contrib/queryparser/src/test/org/apache/lucene/queryParser/standard/TestQueryParserWrapper.java index f4f87b73685..f5e061ed533 100644 --- a/contrib/queryparser/src/test/org/apache/lucene/queryParser/standard/TestQueryParserWrapper.java +++ b/contrib/queryparser/src/test/org/apache/lucene/queryParser/standard/TestQueryParserWrapper.java @@ -594,7 +594,7 @@ public class TestQueryParserWrapper extends LocalizedTestCase { Field.Index.UN_TOKENIZED)); iw.addDocument(doc); iw.close(); - IndexSearcher is = new IndexSearcher(ramDir); + IndexSearcher is = new IndexSearcher(ramDir, true); QueryParserWrapper qp = new QueryParserWrapper("content", new WhitespaceAnalyzer()); @@ -1000,7 +1000,7 @@ public class TestQueryParserWrapper extends LocalizedTestCase { addDateDoc("a", 2005, 12, 2, 10, 15, 33, iw); addDateDoc("b", 2005, 12, 4, 22, 15, 00, iw); iw.close(); - IndexSearcher is = new IndexSearcher(ramDir); + IndexSearcher is = new IndexSearcher(ramDir, true); assertHits(1, "[12/1/2005 TO 12/3/2005]", is); assertHits(2, "[12/1/2005 TO 12/4/2005]", is); assertHits(1, "[12/3/2005 TO 12/4/2005]", is); diff --git a/contrib/regex/src/test/org/apache/lucene/search/regex/TestRegexQuery.java b/contrib/regex/src/test/org/apache/lucene/search/regex/TestRegexQuery.java index 38bddda906f..c9ce7316267 100644 --- a/contrib/regex/src/test/org/apache/lucene/search/regex/TestRegexQuery.java +++ b/contrib/regex/src/test/org/apache/lucene/search/regex/TestRegexQuery.java @@ -45,7 +45,7 @@ public class TestRegexQuery extends TestCase { writer.addDocument(doc); writer.optimize(); writer.close(); - searcher = new IndexSearcher(directory); + searcher = new IndexSearcher(directory, true); } catch (Exception e) { fail(e.toString()); } diff --git a/contrib/regex/src/test/org/apache/lucene/search/regex/TestSpanRegexQuery.java b/contrib/regex/src/test/org/apache/lucene/search/regex/TestSpanRegexQuery.java index 6321e6f51b8..1235eebc4a1 100644 --- a/contrib/regex/src/test/org/apache/lucene/search/regex/TestSpanRegexQuery.java +++ b/contrib/regex/src/test/org/apache/lucene/search/regex/TestSpanRegexQuery.java @@ -61,7 +61,7 @@ public class TestSpanRegexQuery extends TestCase { writer.optimize(); writer.close(); - IndexSearcher searcher = new IndexSearcher(directory); + IndexSearcher searcher = new IndexSearcher(directory, true); SpanRegexQuery srq = new SpanRegexQuery(new Term("field", "aut.*")); SpanFirstQuery sfq = new SpanFirstQuery(srq, 1); // SpanNearQuery query = new SpanNearQuery(new SpanQuery[] {srq, stq}, 6, @@ -80,8 +80,8 @@ public class TestSpanRegexQuery extends TestCase { // 1. Search the same store which works IndexSearcher[] arrSearcher = new IndexSearcher[2]; - arrSearcher[0] = new IndexSearcher(indexStoreA); - arrSearcher[1] = new IndexSearcher(indexStoreB); + arrSearcher[0] = new IndexSearcher(indexStoreA, true); + arrSearcher[1] = new IndexSearcher(indexStoreB, true); MultiSearcher searcher = new MultiSearcher(arrSearcher); Hits hits = searcher.search(query); arrSearcher[0].close(); diff --git a/contrib/remote/src/java/org/apache/lucene/search/RemoteSearchable.java b/contrib/remote/src/java/org/apache/lucene/search/RemoteSearchable.java index e167fa5e36f..969dc80dd94 100644 --- a/contrib/remote/src/java/org/apache/lucene/search/RemoteSearchable.java +++ b/contrib/remote/src/java/org/apache/lucene/search/RemoteSearchable.java @@ -21,8 +21,10 @@ import org.apache.lucene.document.Document; import org.apache.lucene.document.FieldSelector; import org.apache.lucene.index.Term; import org.apache.lucene.index.CorruptIndexException; +import org.apache.lucene.store.FSDirectory; import java.io.IOException; +import java.io.File; import java.rmi.Naming; import java.rmi.RMISecurityManager; import java.rmi.RemoteException; @@ -116,7 +118,7 @@ public class RemoteSearchable System.setSecurityManager(new RMISecurityManager()); } - Searchable local = new IndexSearcher(indexName); + Searchable local = new IndexSearcher(FSDirectory.open(new File(indexName)), true); RemoteSearchable impl = new RemoteSearchable(local); // bind the implementation to "Searchable" diff --git a/contrib/remote/src/test/org/apache/lucene/search/TestRemoteCachingWrapperFilter.java b/contrib/remote/src/test/org/apache/lucene/search/TestRemoteCachingWrapperFilter.java index 1edf24c8a5e..08cfbc6074f 100644 --- a/contrib/remote/src/test/org/apache/lucene/search/TestRemoteCachingWrapperFilter.java +++ b/contrib/remote/src/test/org/apache/lucene/search/TestRemoteCachingWrapperFilter.java @@ -78,7 +78,7 @@ public class TestRemoteCachingWrapperFilter extends LuceneTestCase { // publish it port = _TestUtil.getRandomSocketPort(); LocateRegistry.createRegistry(port); - Searchable local = new IndexSearcher(indexStore); + Searchable local = new IndexSearcher(indexStore, true); RemoteSearchable impl = new RemoteSearchable(local); Naming.rebind("//localhost:" + port + "/Searchable", impl); } diff --git a/contrib/remote/src/test/org/apache/lucene/search/TestRemoteSearchable.java b/contrib/remote/src/test/org/apache/lucene/search/TestRemoteSearchable.java index ff1d4ccf1cb..a7c4de7d420 100644 --- a/contrib/remote/src/test/org/apache/lucene/search/TestRemoteSearchable.java +++ b/contrib/remote/src/test/org/apache/lucene/search/TestRemoteSearchable.java @@ -72,7 +72,7 @@ public class TestRemoteSearchable extends LuceneTestCase { // publish it port = _TestUtil.getRandomSocketPort(); LocateRegistry.createRegistry(port); - Searchable local = new IndexSearcher(indexStore); + Searchable local = new IndexSearcher(indexStore, true); RemoteSearchable impl = new RemoteSearchable(local); Naming.rebind("//localhost:" + port + "/Searchable", impl); } diff --git a/contrib/remote/src/test/org/apache/lucene/search/TestRemoteSort.java b/contrib/remote/src/test/org/apache/lucene/search/TestRemoteSort.java index 6b813977e9c..cfcab0c05e3 100644 --- a/contrib/remote/src/test/org/apache/lucene/search/TestRemoteSort.java +++ b/contrib/remote/src/test/org/apache/lucene/search/TestRemoteSort.java @@ -237,6 +237,7 @@ public class TestRemoteSort extends LuceneTestCase implements Serializable { } // test custom search when remote + /* rewrite with new API public void testRemoteCustomSort() throws Exception { Searchable searcher = getRemote(); MultiSearcher multi = new MultiSearcher (new Searchable[] { searcher }); @@ -256,7 +257,7 @@ public class TestRemoteSort extends LuceneTestCase implements Serializable { assertSaneFieldCaches(getName() + " Comparator"); FieldCache.DEFAULT.purgeAllCaches(); - } + }*/ // test that the relevancy scores are the same even if // hits are sorted diff --git a/contrib/spatial/src/test/org/apache/lucene/spatial/tier/TestCartesian.java b/contrib/spatial/src/test/org/apache/lucene/spatial/tier/TestCartesian.java index 4df8d0c2c00..adced337356 100644 --- a/contrib/spatial/src/test/org/apache/lucene/spatial/tier/TestCartesian.java +++ b/contrib/spatial/src/test/org/apache/lucene/spatial/tier/TestCartesian.java @@ -164,7 +164,7 @@ public class TestCartesian extends TestCase{ } public void testAntiM() throws IOException, InvalidGeoException { - searcher = new IndexSearcher(directory); + searcher = new IndexSearcher(directory, true); final double miles = 2800.0; // Hawaii @@ -252,7 +252,7 @@ public class TestCartesian extends TestCase{ } public void testPoleFlipping() throws IOException, InvalidGeoException { - searcher = new IndexSearcher(directory); + searcher = new IndexSearcher(directory, true); final double miles = 3500.0; lat = 41.6032207; @@ -340,7 +340,7 @@ public class TestCartesian extends TestCase{ } public void testRange() throws IOException, InvalidGeoException { - searcher = new IndexSearcher(directory); + searcher = new IndexSearcher(directory, true); final double[] milesToTest = new double[] {6.0, 0.5, 0.001, 0.0}; final int[] expected = new int[] {7, 1, 0, 0}; @@ -431,7 +431,7 @@ public class TestCartesian extends TestCase{ public void testGeoHashRange() throws IOException, InvalidGeoException { - searcher = new IndexSearcher(directory); + searcher = new IndexSearcher(directory, true); final double[] milesToTest = new double[] {6.0, 0.5, 0.001, 0.0}; final int[] expected = new int[] {7, 1, 0, 0}; diff --git a/contrib/spellchecker/src/java/org/apache/lucene/search/spell/SpellChecker.java b/contrib/spellchecker/src/java/org/apache/lucene/search/spell/SpellChecker.java index 28d87eb2b84..399a9d54c65 100755 --- a/contrib/spellchecker/src/java/org/apache/lucene/search/spell/SpellChecker.java +++ b/contrib/spellchecker/src/java/org/apache/lucene/search/spell/SpellChecker.java @@ -113,7 +113,7 @@ public class SpellChecker { if (searcher != null) { searcher.close(); } - searcher = new IndexSearcher(this.spellIndex); + searcher = new IndexSearcher(this.spellIndex, true); } public void setStringDistance(StringDistance sd) { @@ -302,7 +302,7 @@ public class SpellChecker { //close the old searcher searcher.close(); - searcher = new IndexSearcher(this.spellIndex); + searcher = new IndexSearcher(this.spellIndex, true); } /** @@ -350,7 +350,7 @@ public class SpellChecker { // also re-open the spell index to see our own changes when the next suggestion // is fetched: searcher.close(); - searcher = new IndexSearcher(this.spellIndex); + searcher = new IndexSearcher(this.spellIndex, true); } /** diff --git a/contrib/spellchecker/src/test/org/apache/lucene/search/spell/TestLuceneDictionary.java b/contrib/spellchecker/src/test/org/apache/lucene/search/spell/TestLuceneDictionary.java index 609c9533606..98956da004e 100644 --- a/contrib/spellchecker/src/test/org/apache/lucene/search/spell/TestLuceneDictionary.java +++ b/contrib/spellchecker/src/test/org/apache/lucene/search/spell/TestLuceneDictionary.java @@ -77,7 +77,7 @@ public class TestLuceneDictionary extends TestCase { public void testFieldNonExistent() throws IOException { try { - indexReader = IndexReader.open(store); + indexReader = IndexReader.open(store, true); ld = new LuceneDictionary(indexReader, "nonexistent_field"); it = ld.getWordsIterator(); @@ -91,7 +91,7 @@ public class TestLuceneDictionary extends TestCase { public void testFieldAaa() throws IOException { try { - indexReader = IndexReader.open(store); + indexReader = IndexReader.open(store, true); ld = new LuceneDictionary(indexReader, "aaa"); it = ld.getWordsIterator(); @@ -107,7 +107,7 @@ public class TestLuceneDictionary extends TestCase { public void testFieldContents_1() throws IOException { try { - indexReader = IndexReader.open(store); + indexReader = IndexReader.open(store, true); ld = new LuceneDictionary(indexReader, "contents"); it = ld.getWordsIterator(); @@ -137,7 +137,7 @@ public class TestLuceneDictionary extends TestCase { public void testFieldContents_2() throws IOException { try { - indexReader = IndexReader.open(store); + indexReader = IndexReader.open(store, true); ld = new LuceneDictionary(indexReader, "contents"); it = ld.getWordsIterator(); @@ -169,7 +169,7 @@ public class TestLuceneDictionary extends TestCase { public void testFieldZzz() throws IOException { try { - indexReader = IndexReader.open(store); + indexReader = IndexReader.open(store, true); ld = new LuceneDictionary(indexReader, "zzz"); it = ld.getWordsIterator(); @@ -186,7 +186,7 @@ public class TestLuceneDictionary extends TestCase { public void testSpellchecker() throws IOException { SpellChecker sc = new SpellChecker(new RAMDirectory()); - indexReader = IndexReader.open(store); + indexReader = IndexReader.open(store, true); sc.indexDictionary(new LuceneDictionary(indexReader, "contents")); String[] suggestions = sc.suggestSimilar("Tam", 1); assertEquals(1, suggestions.length); diff --git a/contrib/spellchecker/src/test/org/apache/lucene/search/spell/TestSpellChecker.java b/contrib/spellchecker/src/test/org/apache/lucene/search/spell/TestSpellChecker.java index 444059ecee6..a9c71abf801 100755 --- a/contrib/spellchecker/src/test/org/apache/lucene/search/spell/TestSpellChecker.java +++ b/contrib/spellchecker/src/test/org/apache/lucene/search/spell/TestSpellChecker.java @@ -63,7 +63,7 @@ public class TestSpellChecker extends TestCase { public void testBuild() throws CorruptIndexException, IOException { - IndexReader r = IndexReader.open(userindex); + IndexReader r = IndexReader.open(userindex, true); spellChecker.clearIndex(); @@ -192,7 +192,7 @@ public class TestSpellChecker extends TestCase { } private int numdoc() throws IOException { - IndexReader rs = IndexReader.open(spellindex); + IndexReader rs = IndexReader.open(spellindex, true); int num = rs.numDocs(); assertTrue(num != 0); //System.out.println("num docs: " + num); diff --git a/contrib/surround/src/test/org/apache/lucene/queryParser/surround/query/BooleanQueryTst.java b/contrib/surround/src/test/org/apache/lucene/queryParser/surround/query/BooleanQueryTst.java index 03439ce84dd..d6eb6721a51 100644 --- a/contrib/surround/src/test/org/apache/lucene/queryParser/surround/query/BooleanQueryTst.java +++ b/contrib/surround/src/test/org/apache/lucene/queryParser/surround/query/BooleanQueryTst.java @@ -98,7 +98,7 @@ public class BooleanQueryTst { /* if (verbose) System.out.println("Lucene: " + query.toString()); */ TestCollector tc = new TestCollector(); - Searcher searcher = new IndexSearcher(dBase.getDb()); + Searcher searcher = new IndexSearcher(dBase.getDb(), true); try { searcher.search(query, tc); } finally { diff --git a/contrib/swing/src/java/org/apache/lucene/swing/models/ListSearcher.java b/contrib/swing/src/java/org/apache/lucene/swing/models/ListSearcher.java index a0ce0300a82..4f86c674a55 100644 --- a/contrib/swing/src/java/org/apache/lucene/swing/models/ListSearcher.java +++ b/contrib/swing/src/java/org/apache/lucene/swing/models/ListSearcher.java @@ -153,7 +153,7 @@ public class ListSearcher extends AbstractListModel { this.searchString = searchString; //make a new index searcher with the in memory (RAM) index. - IndexSearcher is = new IndexSearcher(directory); + IndexSearcher is = new IndexSearcher(directory, true); //make an array of fields - one for each column String[] fields = {FIELD_NAME}; diff --git a/contrib/swing/src/java/org/apache/lucene/swing/models/TableSearcher.java b/contrib/swing/src/java/org/apache/lucene/swing/models/TableSearcher.java index 5f92368d42c..ac53445d0da 100644 --- a/contrib/swing/src/java/org/apache/lucene/swing/models/TableSearcher.java +++ b/contrib/swing/src/java/org/apache/lucene/swing/models/TableSearcher.java @@ -231,7 +231,7 @@ public class TableSearcher extends AbstractTableModel { this.searchString = searchString; //make a new index searcher with the in memory (RAM) index. - IndexSearcher is = new IndexSearcher(directory); + IndexSearcher is = new IndexSearcher(directory, true); //make an array of fields - one for each column String[] fields = new String[tableModel.getColumnCount()]; diff --git a/contrib/wordnet/src/java/org/apache/lucene/wordnet/SynExpand.java b/contrib/wordnet/src/java/org/apache/lucene/wordnet/SynExpand.java index 5c9c118a59b..25d7b8c5629 100755 --- a/contrib/wordnet/src/java/org/apache/lucene/wordnet/SynExpand.java +++ b/contrib/wordnet/src/java/org/apache/lucene/wordnet/SynExpand.java @@ -70,7 +70,7 @@ public final class SynExpand { } FSDirectory directory = FSDirectory.open(new File(args[0])); - IndexSearcher searcher = new IndexSearcher(directory); + IndexSearcher searcher = new IndexSearcher(directory, true); String query = args[1]; String field = "contents"; diff --git a/contrib/wordnet/src/java/org/apache/lucene/wordnet/SynLookup.java b/contrib/wordnet/src/java/org/apache/lucene/wordnet/SynLookup.java index 92d2d72ea14..aed34039ed0 100644 --- a/contrib/wordnet/src/java/org/apache/lucene/wordnet/SynLookup.java +++ b/contrib/wordnet/src/java/org/apache/lucene/wordnet/SynLookup.java @@ -53,7 +53,7 @@ public class SynLookup { } FSDirectory directory = FSDirectory.open(new File(args[0])); - IndexSearcher searcher = new IndexSearcher(directory); + IndexSearcher searcher = new IndexSearcher(directory, true); String word = args[1]; Hits hits = searcher.search( diff --git a/contrib/wordnet/src/java/org/apache/lucene/wordnet/Syns2Index.java b/contrib/wordnet/src/java/org/apache/lucene/wordnet/Syns2Index.java index 48708ca49a2..7742f8b6cda 100644 --- a/contrib/wordnet/src/java/org/apache/lucene/wordnet/Syns2Index.java +++ b/contrib/wordnet/src/java/org/apache/lucene/wordnet/Syns2Index.java @@ -35,6 +35,7 @@ import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.lucene.index.IndexWriter; +import org.apache.lucene.store.FSDirectory; /** * Convert the prolog file wn_s.pl from the WordNet prolog download @@ -239,31 +240,36 @@ public class Syns2Index { int row = 0; int mod = 1; + FSDirectory dir = FSDirectory.open(new File(indexDir)); + try { - // override the specific index if it already exists - IndexWriter writer = new IndexWriter(indexDir, ana, true, IndexWriter.MaxFieldLength.LIMITED); - writer.setUseCompoundFile(true); // why? - Iterator i1 = word2Nums.keySet().iterator(); - while (i1.hasNext()) // for each word - { - String g = (String) i1.next(); - Document doc = new Document(); + // override the specific index if it already exists + IndexWriter writer = new IndexWriter(dir, ana, true, IndexWriter.MaxFieldLength.LIMITED); + writer.setUseCompoundFile(true); // why? + Iterator i1 = word2Nums.keySet().iterator(); + while (i1.hasNext()) // for each word + { + String g = (String) i1.next(); + Document doc = new Document(); - int n = index(word2Nums, num2Words, g, doc); - if (n > 0) - { - doc.add( new Field( F_WORD, g, Field.Store.YES, Field.Index.NOT_ANALYZED)); - if ((++row % mod) == 0) - { - o.println("\trow=" + row + "/" + word2Nums.size() + " doc= " + doc); - mod *= 2; - } - writer.addDocument(doc); - } // else degenerate + int n = index(word2Nums, num2Words, g, doc); + if (n > 0) + { + doc.add( new Field( F_WORD, g, Field.Store.YES, Field.Index.NOT_ANALYZED)); + if ((++row % mod) == 0) + { + o.println("\trow=" + row + "/" + word2Nums.size() + " doc= " + doc); + mod *= 2; + } + writer.addDocument(doc); + } // else degenerate + } + o.println( "Optimizing.."); + writer.optimize(); + writer.close(); + } finally { + dir.close(); } - o.println( "Optimizing.."); - writer.optimize(); - writer.close(); } /** diff --git a/contrib/xml-query-parser/src/demo/java/org/apache/lucene/xmlparser/webdemo/FormBasedXmlQueryDemo.java b/contrib/xml-query-parser/src/demo/java/org/apache/lucene/xmlparser/webdemo/FormBasedXmlQueryDemo.java index faba7bfdd79..a55aab4035a 100644 --- a/contrib/xml-query-parser/src/demo/java/org/apache/lucene/xmlparser/webdemo/FormBasedXmlQueryDemo.java +++ b/contrib/xml-query-parser/src/demo/java/org/apache/lucene/xmlparser/webdemo/FormBasedXmlQueryDemo.java @@ -145,6 +145,6 @@ public class FormBasedXmlQueryDemo extends HttpServlet { writer.close(); //open searcher - searcher=new IndexSearcher(rd); + searcher=new IndexSearcher(rd, true); } } diff --git a/contrib/xml-query-parser/src/test/org/apache/lucene/xmlparser/TestParser.java b/contrib/xml-query-parser/src/test/org/apache/lucene/xmlparser/TestParser.java index 88dc76217a8..5f6f0332a19 100644 --- a/contrib/xml-query-parser/src/test/org/apache/lucene/xmlparser/TestParser.java +++ b/contrib/xml-query-parser/src/test/org/apache/lucene/xmlparser/TestParser.java @@ -73,7 +73,7 @@ public class TestParser extends TestCase { d.close(); writer.close(); } - reader=IndexReader.open(dir); + reader=IndexReader.open(dir, true); searcher=new IndexSearcher(reader); } diff --git a/contrib/xml-query-parser/src/test/org/apache/lucene/xmlparser/TestQueryTemplateManager.java b/contrib/xml-query-parser/src/test/org/apache/lucene/xmlparser/TestQueryTemplateManager.java index 101e977c07a..9c4d2921df5 100644 --- a/contrib/xml-query-parser/src/test/org/apache/lucene/xmlparser/TestQueryTemplateManager.java +++ b/contrib/xml-query-parser/src/test/org/apache/lucene/xmlparser/TestQueryTemplateManager.java @@ -149,7 +149,7 @@ public class TestQueryTemplateManager extends TestCase { } w.optimize(); w.close(); - searcher=new IndexSearcher(dir); + searcher=new IndexSearcher(dir, true); //initialize the parser builder=new CorePlusExtensionsParser("artist", analyzer);