Skip to content

Commit 7b790cb

Browse files
committed
Throw DslException when no field for field value factor
1 parent 5e4dc9d commit 7b790cb

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

src/Nest/DSL/Query/FunctionScoreQueryDescriptor.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -358,6 +358,8 @@ public FieldValueFactor(Action<FieldValueFactorDescriptor<T>> descriptorBuilder)
358358
{
359359
var descriptor = new FieldValueFactorDescriptor<T>();
360360
descriptorBuilder(descriptor);
361+
if (descriptor._Field.IsConditionless())
362+
throw new DslException("Field name not set for field value factor function");
361363

362364
this._FieldValueFactor = descriptor;
363365
}

src/Tests/Nest.Tests.Unit/Search/Query/Singles/FunctionScoreQueryJson.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,5 +86,18 @@ public void FunctionScoreQueryConditionless()
8686
}";
8787
Assert.True(json.JsonEquals(expected), json);
8888
}
89+
90+
[Test]
91+
public void ConditionlessFieldValueFactor()
92+
{
93+
Assert.Throws<DslException>(() => new SearchDescriptor<ElasticsearchProject>().From(0).Size(10)
94+
.Query(q => q
95+
.FunctionScore(fs => fs
96+
.Query(qq => qq.Term("", ""))
97+
.Functions(
98+
f => f.FieldValueFactor(db => db.Factor(3.4).Modifier(FieldValueFactorModifier.ln))
99+
))
100+
));
101+
}
89102
}
90103
}

0 commit comments

Comments
 (0)