public void CompareQueryWithFilter()
{
var query = new TermQuery("gender", "true");
var constanQuery = new ConstantScoreQuery(query);
var result = client.Search(index, "type" , constanQuery, 0, 5);
Assert.AreEqual(50, result.GetTotalCount());
Assert.AreEqual(5, result.GetHits().Hits.Count);
var termQuery = new TermQuery("gender", "true");
var result1 = client.Search(index, "type" , termQuery, 0, 5);
Assert.AreEqual(50, result1.GetTotalCount());
Assert.AreEqual(5, result1.GetHits().Hits.Count);
var termFilter = new TermFilter("gender", "true");
var constanFilter = new ConstantScoreQuery(termFilter);
var result2 = client.Search(index, "type" , constanFilter, 0, 5);
Assert.AreEqual(50, result2.GetTotalCount());
Assert.AreEqual(5, result2.GetHits().Hits.Count);
//perf test
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
for (int i = 0; i < 1000; i++)
{
client.Search(index, "type" , termQuery, 0, 5);
}
stopwatch.Stop();
var time1 = stopwatch.ElapsedMilliseconds;
stopwatch = new Stopwatch();
stopwatch.Start();
for (int i = 0; i < 1000; i++)
{
client.Search(index, "type" , constanQuery, 0, 5);
}
stopwatch.Stop();
var time2 = stopwatch.ElapsedMilliseconds;
stopwatch = new Stopwatch();
stopwatch.Start();
for (int i = 0; i < 1000; i++)
{
client.Search(index, "type" , constanFilter, 0, 5);
}
stopwatch.Stop();
var time3 = stopwatch.ElapsedMilliseconds;
Console.WriteLine("TermQuery Time1:" + time1);
Console.WriteLine("ConstantQueryWithQuery Time2:" + time2);
Console.WriteLine("ConstantQueryWithFilter Time3:" + time3);
}