public virtual void TestMaxScore()
{
Directory d = NewDirectory();
// Not RIW because we need exactly 2 segs:
IndexWriter w = new IndexWriter(d, new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(Random())));
int id = 0;
for (int seg = 0; seg < 2; seg++)
{
for (int docIDX = 0; docIDX < 10; docIDX++)
{
Document doc = new Document();
doc.Add(NewStringField("id", "" + docIDX, Field.Store.YES));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < id; i++)
{
sb.Append(' ');
sb.Append("text");
}
doc.Add(NewTextField("body", sb.ToString(), Field.Store.NO));
w.AddDocument(doc);
id++;
}
w.Commit();
}
IndexReader r = DirectoryReader.Open(w, true);
w.Dispose();
Query q = new TermQuery(new Term("body", "text"));
IndexSearcher s = NewSearcher(r);
float maxScore = s.Search(q, 10).MaxScore;
Assert.AreEqual(maxScore, s.Search(q, null, 3, Sort.INDEXORDER, Random().NextBoolean(), true).MaxScore, 0.0);
Assert.AreEqual(maxScore, s.Search(q, null, 3, Sort.RELEVANCE, Random().NextBoolean(), true).MaxScore, 0.0);
Assert.AreEqual(maxScore, s.Search(q, null, 3, new Sort(new SortField[] { new SortField("id", SortField.Type_e.INT, false) }), Random().NextBoolean(), true).MaxScore, 0.0);
Assert.AreEqual(maxScore, s.Search(q, null, 3, new Sort(new SortField[] { new SortField("id", SortField.Type_e.INT, true) }), Random().NextBoolean(), true).MaxScore, 0.0);
r.Dispose();
d.Dispose();
}