private void DoTestSearch(Random random, StringWriter @out, bool useCompoundFile)
{
Store.Directory directory = NewDirectory();
Analyzer analyzer = new MockAnalyzer(random);
IndexWriterConfig conf = NewIndexWriterConfig(TEST_VERSION_CURRENT, analyzer);
MergePolicy mp = conf.MergePolicy;
mp.NoCFSRatio = useCompoundFile ? 1.0 : 0.0;
IndexWriter writer = new IndexWriter(directory, conf);
string[] docs = new string[] { "a b c d e", "a b c d e a b c d e", "a b c d e f g h i j", "a c e", "e c a", "a c e a c e", "a c e a b c" };
for (int j = 0; j < docs.Length; j++)
{
Documents.Document d = new Documents.Document();
d.Add(NewTextField("contents", docs[j], Field.Store.YES));
d.Add(NewStringField("id", "" + j, Field.Store.NO));
writer.AddDocument(d);
}
writer.Dispose();
IndexReader reader = DirectoryReader.Open(directory);
IndexSearcher searcher = NewSearcher(reader);
ScoreDoc[] hits = null;
Sort sort = new Sort(SortField.FIELD_SCORE, new SortField("id", SortField.Type_e.INT));
foreach (Query query in BuildQueries())
{
@out.WriteLine("Query: " + query.ToString("contents"));
if (VERBOSE)
{
Console.WriteLine("TEST: query=" + query);
}
hits = searcher.Search(query, null, 1000, sort).ScoreDocs;
@out.WriteLine(hits.Length + " total results");
for (int i = 0; i < hits.Length && i < 10; i++)
{
Documents.Document d = searcher.Doc(hits[i].Doc);
@out.WriteLine(i + " " + hits[i].Score + " " + d.Get("contents"));
}
}
reader.Dispose();
directory.Dispose();
}