Index: lucene/suggest/src/test/org/apache/lucene/search/suggest/analyzing/AnalyzingSuggesterTest.java =================================================================== --- lucene/suggest/src/test/org/apache/lucene/search/suggest/analyzing/AnalyzingSuggesterTest.java (revision 1405545) +++ lucene/suggest/src/test/org/apache/lucene/search/suggest/analyzing/AnalyzingSuggesterTest.java (working copy) @@ -983,4 +983,17 @@ assertEquals("b", results.get(1).key); assertEquals(5, results.get(1).value); } + + public void testDupSurfaceFormsMissingResults3() throws Exception { + Analyzer a = new MockAnalyzer(random()); + AnalyzingSuggester suggester = new AnalyzingSuggester(a, a, AnalyzingSuggester.PRESERVE_SEP, 256, -1); + suggester.build(new TermFreqArrayIterator(new TermFreq[] { + new TermFreq("a a", 7), + new TermFreq("a a", 7), + new TermFreq("a c", 6), + new TermFreq("a c", 3), + new TermFreq("a b", 5), + })); + assertEquals("[a a/7, a c/6, a b/5]", suggester.lookup("a", false, 3).toString()); + } } Index: lucene/suggest/src/java/org/apache/lucene/search/suggest/analyzing/AnalyzingSuggester.java =================================================================== --- lucene/suggest/src/java/org/apache/lucene/search/suggest/analyzing/AnalyzingSuggester.java (revision 1405545) +++ lucene/suggest/src/java/org/apache/lucene/search/suggest/analyzing/AnalyzingSuggester.java (working copy) @@ -379,6 +379,10 @@ // Sort all input/output pairs (required by FST.Builder): new Sort().sort(tempInput, tempSorted); + + // Free disk space: + tempInput.delete(); + reader = new Sort.ByteSequencesReader(tempSorted); PairOutputs outputs = new PairOutputs(PositiveIntOutputs.getSingleton(true), ByteSequenceOutputs.getSingleton());