Ejemplo n.º 1
0
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            CustomScoreQuery term = (CustomScoreQuery)value;

            if (term != null)
            {
                writer.WriteStartObject();

                writer.WritePropertyName("custom_score");
                writer.WriteStartObject();

                writer.WritePropertyName("query");
                serializer.Serialize(writer, term.Query);

                writer.WritePropertyName("script");
                writer.WriteValue(term.Script);
                if (term.Params != null && term.Params.Count > 0)
                {
                    writer.WritePropertyName("params");
                    writer.WriteStartObject();
                    foreach (var filter in term.Params)
                    {
                        writer.WritePropertyName(filter.Key);
                        writer.WriteValue(filter.Value);
                    }
                    writer.WriteEndObject();
                }
                writer.WriteEndObject();
                writer.WriteEndObject();
            }
        }
Ejemplo n.º 2
0
		public void TestCustomScoreQuery()
		{
			//age 23 24 25
			var query = new TermQuery("type", "common");
			var dict = new Dictionary<string, object>();
			dict["param1"] = 0.2;
			var script = "_score + doc['age'].value - param1";
			var q = new CustomScoreQuery(query, script, dict);
			var result = client.Search(index, "type", q, 0, 5);
			foreach (var o in result.GetHits().Hits)
			{
				Console.WriteLine(o.ToString());
			}
			Assert.AreEqual("张",result.GetHits().Hits[0].Source["name"]);
		}