public virtual void TestQuery()
{
IndexSearcher searcher = NewSearcher(reader);
// Making sure the query yields 25 documents with the facet "a"
DrillDownQuery q = new DrillDownQuery(config);
q.Add("a");
QueryUtils.Check(q);
TopDocs docs = searcher.Search(q, 100);
Assert.AreEqual(25, docs.TotalHits);
// Making sure the query yields 5 documents with the facet "b" and the
// previous (facet "a") query as a base query
DrillDownQuery q2 = new DrillDownQuery(config, q);
q2.Add("b");
docs = searcher.Search(q2, 100);
Assert.AreEqual(5, docs.TotalHits);
// Making sure that a query of both facet "a" and facet "b" yields 5 results
DrillDownQuery q3 = new DrillDownQuery(config);
q3.Add("a");
q3.Add("b");
docs = searcher.Search(q3, 100);
Assert.AreEqual(5, docs.TotalHits);
// Check that content:foo (which yields 50% results) and facet/b (which yields 20%)
// would gather together 10 results (10%..)
Query fooQuery = new TermQuery(new Term("content", "foo"));
DrillDownQuery q4 = new DrillDownQuery(config, fooQuery);
q4.Add("b");
docs = searcher.Search(q4, 100);
Assert.AreEqual(10, docs.TotalHits);
}