我有一个我在5个字段中使用的多匹配查询。我还使用功能分数将各种因素结合到分数中。我想为此添加一个因子,以便在其中一个字段上匹配的结果会增加(添加一个大数字,以便此字段上的匹配始终具有最高分数)。
我知道我可以使用突出显示找出哪些字段匹配,但如何在功能评分脚本中访问该信息?
这是我到目前为止所使用的(使用NEST,但这不应该有所作为)。
var searchResponse = client.Search<TopicCollection.Topic>(s => s
.Query(q => q
.FunctionScore(fs => fs
.Name("function_score_query")
.Query(q1 => q1
.MultiMatch(c => c
.Fields(f => f
.Field(p => p.field1)
.Field(p => p.field2) //...etc
.Query(searchTerm)
)
)
.Functions(fun => fun
.ScriptScore(ss => ss.Script(sc => sc
.Inline(
//TODO: add 1000 to normalised _score if match is in field1
)))
).BoostMode(FunctionBoostMode.Replace)
)
).Highlight(h => h
.Fields(p => p.AllField())
)
);