WARNING: Version 5.x has passed its EOL date.
This documentation is no longer being maintained and may be removed. If you are running this version, we strongly advise you to upgrade. For the latest information, see the current release documentation.
Function Score Query Usage
editFunction Score Query Usage
editFluent DSL example
editq .FunctionScore(c => c .Name("named_query") .Boost(1.1) .Query(qq => qq.MatchAll()) .BoostMode(FunctionBoostMode.Multiply) .ScoreMode(FunctionScoreMode.Sum) .MaxBoost(20.0) .MinScore(1.0) .Functions(f => f .Exponential(b => b.Field(p => p.NumberOfCommits).Decay(0.5).Origin(1.0).Scale(0.1).Weight(2.1)) .GaussDate(b => b.Field(p => p.LastActivity).Origin(DateMath.Now).Decay(0.5).Scale("1d")) .LinearGeoLocation(b => b.Field(p => p.Location).Origin(new GeoLocation(70, -70)).Scale(Distance.Miles(1)).MultiValueMode(MultiValueMode.Average)) .FieldValueFactor(b => b.Field("x").Factor(1.1).Missing(0.1).Modifier(FieldValueFactorModifier.Ln)) .RandomScore(1337) .RandomScore("randomstring") .Weight(1.0) .ScriptScore(ss => ss.Script(s => s.File("x"))) ) )
Object Initializer syntax example
editnew FunctionScoreQuery() { Name = "named_query", Boost = 1.1, Query = new MatchAllQuery { }, BoostMode = FunctionBoostMode.Multiply, ScoreMode = FunctionScoreMode.Sum, MaxBoost = 20.0, MinScore = 1.0, Functions = new List<IScoreFunction> { new ExponentialDecayFunction { Origin = 1.0, Decay = 0.5, Field = Field<Project>(p => p.NumberOfCommits), Scale = 0.1, Weight = 2.1 }, new GaussDateDecayFunction { Origin = DateMath.Now, Field = Field<Project>(p => p.LastActivity), Decay = 0.5, Scale = TimeSpan.FromDays(1) }, new LinearGeoDecayFunction { Origin = new GeoLocation(70, -70), Field = Field<Project>(p => p.Location), Scale = Distance.Miles(1), MultiValueMode = MultiValueMode.Average }, new FieldValueFactorFunction { Field = "x", Factor = 1.1, Missing = 0.1, Modifier = FieldValueFactorModifier.Ln }, new RandomScoreFunction { Seed = 1337 }, new RandomScoreFunction { Seed = "randomstring" }, new WeightFunction { Weight = 1.0 }, new ScriptScoreFunction { Script = new ScriptQuery { File = "x" } } } }
Example json output.
{ "function_score": { "_name": "named_query", "boost": 1.1, "boost_mode": "multiply", "functions": [ { "exp": { "numberOfCommits": { "origin": 1.0, "scale": 0.1, "decay": 0.5 } }, "weight": 2.1 }, { "gauss": { "lastActivity": { "origin": "now", "scale": "1d", "decay": 0.5 } } }, { "linear": { "location": { "origin": { "lat": 70.0, "lon": -70.0 }, "scale": "1.0mi" }, "multi_value_mode": "avg" } }, { "field_value_factor": { "field": "x", "factor": 1.1, "missing": 0.1, "modifier": "ln" } }, { "random_score": { "seed": 1337 } }, { "random_score": { "seed": "randomstring" } }, { "weight": 1.0 }, { "script_score": { "script": { "file": "x" } } } ], "max_boost": 20.0, "min_score": 1.0, "query": { "match_all": {} }, "score_mode": "sum" } }