public void TestScriptFilter()
{
//age 23 24 25
var query = new TermQuery("type", "common");
var dict = new Dictionary<string, object>();
dict["param1"] = 20;
var filter = new ScriptFilter("doc['age'].value > param1",dict);
var filterQ = new FilteredQuery(query, filter);
var result= client.Search(index, "type" , filterQ, 0, 5);
Assert.AreEqual(3,result.GetTotalCount());
dict = new Dictionary<string, object>();
dict["param1"] = 23;
filter = new ScriptFilter("doc['age'].value > param1", dict);
filterQ = new FilteredQuery(query, filter);
result = client.Search(index, "type" , filterQ, 0, 5);
Assert.AreEqual(2, result.GetTotalCount());
dict = new Dictionary<string, object>();
dict["param1"] = 24;
filter = new ScriptFilter("doc['age'].value >= param1", dict);
filterQ = new FilteredQuery(query, filter);
result = client.Search(index, "type" , filterQ, 0, 5);
Assert.AreEqual(2, result.GetTotalCount());
dict = new Dictionary<string, object>();
dict["param1"] = 25;
filter = new ScriptFilter("doc['age'].value >= param1", dict);
filterQ = new FilteredQuery(query, filter);
result = client.Search(index, "type" , filterQ, 0, 5);
Assert.AreEqual(1, result.GetTotalCount());
dict = new Dictionary<string, object>();
dict["param1"] = 25;
filter = new ScriptFilter("doc['age'].value < param1", dict);
filterQ = new FilteredQuery(query, filter);
result = client.Search(index, "type" , filterQ, 0, 5);
Assert.AreEqual(2, result.GetTotalCount());
dict = new Dictionary<string, object>();
dict["param1"] = 20;
filter = new ScriptFilter("doc['age'].value < param1", dict);
filterQ = new FilteredQuery(query, filter);
result = client.Search(index, "type" , filterQ, 0, 5);
Assert.AreEqual(0, result.GetTotalCount());
}