public virtual void TestMissingTerms()
{
string fieldName = "field1";
Directory rd = NewDirectory();
RandomIndexWriter w = new RandomIndexWriter(Random(), rd, Similarity, TimeZone);
for (int i = 0; i < 100; i++)
{
Document doc = new Document();
int term = i * 10; //terms are units of 10;
doc.Add(NewStringField(fieldName, "" + term, Field.Store.YES));
w.AddDocument(doc);
}
IndexReader reader = w.Reader;
w.Dispose();
IndexSearcher searcher = NewSearcher(reader);
int numDocs = reader.NumDocs;
ScoreDoc[] results;
MatchAllDocsQuery q = new MatchAllDocsQuery();
List<string> terms = new List<string>();
terms.Add("5");
results = searcher.Search(q, new FieldCacheTermsFilter(fieldName, terms.ToArray()), numDocs).ScoreDocs;
Assert.AreEqual(0, results.Length, "Must match nothing");
terms = new List<string>();
terms.Add("10");
results = searcher.Search(q, new FieldCacheTermsFilter(fieldName, terms.ToArray()), numDocs).ScoreDocs;
Assert.AreEqual(1, results.Length, "Must match 1");
terms = new List<string>();
terms.Add("10");
terms.Add("20");
results = searcher.Search(q, new FieldCacheTermsFilter(fieldName, terms.ToArray()), numDocs).ScoreDocs;
Assert.AreEqual(2, results.Length, "Must match 2");
reader.Dispose();
rd.Dispose();
}
}