Lucene.Net.Search.TestMultiSearcherRanking.CheckQuery C# (CSharp) Method

CheckQuery() private method

checks if a query yields the same result when executed on a single IndexSearcher containing all documents and on a MultiSearcher aggregating sub-searchers
private CheckQuery ( System queryStr ) : void
queryStr System the query to check. ///
return void
		private void  CheckQuery(System.String queryStr)
		{
			// check result hit ranking
			if (verbose)
				System.Console.Out.WriteLine("Query: " + queryStr);
			QueryParser queryParser = new QueryParser(Util.Version.LUCENE_CURRENT, FIELD_NAME, new StandardAnalyzer(Util.Version.LUCENE_CURRENT));
			Query query = queryParser.Parse(queryStr);
			ScoreDoc[] multiSearcherHits = multiSearcher.Search(query, null, 1000).ScoreDocs;
			ScoreDoc[] singleSearcherHits = singleSearcher.Search(query, null, 1000).ScoreDocs;
			Assert.AreEqual(multiSearcherHits.Length, singleSearcherHits.Length);
			for (int i = 0; i < multiSearcherHits.Length; i++)
			{
				Document docMulti = multiSearcher.Doc(multiSearcherHits[i].Doc);
				Document docSingle = singleSearcher.Doc(singleSearcherHits[i].Doc);
				if (verbose)
					System.Console.Out.WriteLine("Multi:  " + docMulti.Get(FIELD_NAME) + " score=" + multiSearcherHits[i].Score);
				if (verbose)
					System.Console.Out.WriteLine("Single: " + docSingle.Get(FIELD_NAME) + " score=" + singleSearcherHits[i].Score);
				Assert.AreEqual(multiSearcherHits[i].Score, singleSearcherHits[i].Score, 0.001f);
				Assert.AreEqual(docMulti.Get(FIELD_NAME), docSingle.Get(FIELD_NAME));
			}
			if (verbose)
				System.Console.Out.WriteLine();
		}